Безопасность 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" **@**

Если бы ключ хоста изменился, вы все равно получили бы предупреждение.

Другие вопросы по тегам