Безопасность sshpass и SFTP для динамического хоста
У меня есть сервер с выделенным IP-адресом A
и сервер с динамическим IP-адресом B
(маршрутизация через no-ip.org). A загружает резервную копию в B через sshpass:
export SSHPASS=***
sshpass -e sftp **@** << !
[..]
put [..]
bye
!
Каждый раз, когда на (A) происходит следующее:
Предупреждение. Постоянно добавлен ключ хоста ECDSA для IP-адреса [...] в список известных хостов.
У меня есть ощущение, что это может быть небезопасный способ передачи данных резервной копии (файл tar). Возможно ли перехватить резервную копию?
Кроме того, я не должен удалить IP из списка известных хостов снова после этого? Резервное копирование выполняется каждый день. Звучит как длинный список известных хостов, которые просто динамичны!
2 ответа
Это предупреждающее сообщение не указывает на угрозу безопасности, поскольку оно уже проверило, что отправленный сервером ключ хоста соответствует известному ключу хоста для имени хоста, к которому вы подключаетесь. (Я бы на самом деле сказал слово Warning
должен был быть исключен из этого конкретного сообщения.)
Вы можете удалить эти динамически добавленные пары ключей IP + хост из списка известных хостов. Но они на самом деле не причиняют вреда, и если вам когда-нибудь потребуется ssh к хосту по IP-адресу, а не по имени хоста, удобно иметь запись уже в файле известных хостов.
Если вы подключаетесь к нескольким различным хостам с динамическим IP, вы можете в конечном итоге столкнуться с ситуацией, когда один хост получает IP-адрес, для которого ssh
ранее записал другой ключ хоста. В этом случае вы получите сообщение об ошибке, и вам нужно будет удалить устаревшую пару ключей IP + хост. (Удаляемая пара будет немного сложнее определить, если вы хэшируете строки в файле известных хостов.)
Одна вещь, которую вы можете сделать для повышения безопасности, - это использовать аутентификацию на основе ключей вместо аутентификации на основе пароля. Ключ не только сложнее угадать, чем пароль, но также сложнее выполнить временную атаку из-за того, что ключ фактически используется для подписи идентификатора сеанса, который гарантированно не соответствует в случае временной атаки.
"Предупреждение" указывает только на то, что IP-адрес хоста изменился, что вы ожидаете.
Клиент OpenSSH проверяет изменение IP-адреса, чтобы дать вам "подсказку DNS-спуфинга" при изменении ключа хоста. Так как в вашем случае ключ хоста правильный, предупреждение бессмысленно, как объясняет @kasperd.
На самом деле, так как вы ожидаете изменения IP, вы можете отключить CheckHostIP
чтобы избежать предупреждения:
sftp -o "CheckHostIP no" **@**
Если бы ключ хоста изменился, вы все равно получили бы предупреждение.