Это простая проблема, с которой мы все сталкиваемся и, вероятно, решим ее вручную, не задумываясь.
Когда серверы меняются, перераспределяются или перераспределяются IP-адреса, мы получаем сообщение проверки хоста SSH ниже. Я заинтересован в оптимизации рабочего процесса для устранения этих ошибок идентификации SSH.
Учитывая следующее сообщение, я обычно vi /root/.ssh/known_hosts +434
и удаляю ( dd
) оскорбительную строку.
Я видел, как разработчики / пользователи в других организациях удаляли весь свой known_hosts
файл из-за разочарования, увидев это сообщение. Хотя я не захожу так далеко, я знаю, что есть более элегантный способ справиться с этим.
Подсказки?
[root@xt ~]# ssh las-db1
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that the RSA host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
ed:86:a2:c4:cd:9b:c5:7a:b1:2b:cc:42:15:76:8c:56.
Please contact your system administrator.
Add correct host key in /root/.ssh/known_hosts to get rid of this message.
Offending key in /root/.ssh/known_hosts:434
RSA host key for las-db1 has changed and you have requested strict checking.
Host key verification failed.
linux
ssh
command-line-interface
ssh-keys
ewwhite
источник
источник
Ответы:
Вы можете использовать
ssh-keygen
команду для удаления определенных записей по хосту:Если у вас нет этой команды, вы всегда можете использовать sed:
источник
ssh-keygen
команду. Хорошо!/etc/ssh/known_hosts
файл в своей сети соответствующими ключами хоста (управляемый w / puppet и т. д.), или вы заполняете свой личный файл ~ / .ssh / known_hosts (для выполнения любого из этих действий вы можете использоватьssh-keyscan
известный товар / безопасный подключение). Запретив этот (и предполагая, что вы не заботитесь о безопасности) наборUserKnownHostsFile=/dev/null
иStrictHostKeyChecking=no
свой~/.ssh/config file
(или передавайте параметры ssh с помощью-o
)Как пользователь марионеток, мой метод решения этой проблемы заключается в том, чтобы на самом деле мой марионеточный сервер собирал мои ключи хоста SSH и публиковал их на всех моих системах, которые устанавливают соединения SSH.
Таким образом, мне не нужно беспокоиться об их удалении. Девяносто девять процентов времени кукла запускает и обновляет ключи для меня, так как мои агенты работают каждые тридцать минут. Исключения для меня очень редки, и поэтому я не возражаю против быстрого редактирования общеизвестных систем_хостов, если не хочу ждать.
источник
Я хотел бы добавить предложение, которое может помочь вам в очень конкретных случаях, когда безопасность менее важна.
У меня есть лабораторная среда с машинами, которые часто переустанавливаются. Каждый раз, когда это происходит, генерируются новые ключи хоста (возможно, я мог бы сохранить ключ хоста где-нибудь и установить его в сценарии после установки).
Поскольку в этой лабораторной среде для меня не проблема безопасности, а ключи меняются так часто, в моем файле .ssh / config есть следующее:
Это гарантирует, что подключение к моим лабораторным машинам никогда не вызовет этой ошибки, и мой ssh-клиент просто подключится без проверки ключа хоста.
Это то, что вы должны делать только в том случае, если безопасность вас вообще не касается, потому что это ставит вас в уязвимое положение для атаки «человек посередине».
источник
Согласно примечанию к выпуску openssh 5.6 , вам больше не нужно использовать ключи хостов:
Предупреждение : я никогда не слышал, чтобы кто-нибудь использовал эту функцию в производстве. Используйте на свой страх и риск (но я считаю, что разработчики openssh настолько параноидальны, что не выпускают такую убойную функцию без большого количества тестирования и аудита кода).
источник
SSHFP DNS ResourceRecord может помочь в зависимости от того, насколько ваш ssh-клиент этим пользуется. Сохраните все ваши отпечатки пальцев открытого ключа SSH там с именем хоста.
Внедрите DNSSEC или DNS поверх SSL заранее.
http://www.ietf.org/rfc/rfc4255.txt
FreeIPA.org обрабатывает управление ключами хоста и пользователя, а также сертификаты PKI. Он также автоматически загружает записи DNS SSHFP при создании новых ключей.
http://docs.fedoraproject.org/en-US/Fedora/17/html/FreeIPA_Guide/host-keys.html
источник