HostKeyAlgorithms
2012-01-26 20:40Обновил один из рабочих серверов FreeBSD с версии 7.4-STABLE на 8.2-STABLE через csup/buildworld/kernel, по стандартной процедуре из /usr/src/UPDATING, установил compat7x.
Система поднялась и заработала без проблем, но сломались все скрипты, которые запускаются из cron и ходят по своим делам на удаленные машины через ssh, авторизуясь ключами:WARNING: DSA key found for host xxx
in /home/xxx/.ssh/known_hosts:6
DSA key fingerprint e8:63:14:52:5e:aa:5c:73:b2:1f:c1:b3:f9:4f:87:54.
Host key verification failed.
Дело в том, что когда-то давно из-за проблем с патентами RSA в FreeBSD запатчили ssh на предмет предпочтения ключей DSA перед RSA по умолчанию. И в таком состоянии FreeBSD жила много лет. Срок тех проблемных патентов истек и патч этот из системы убрали и теперь по умолчанию sshd в FreeBSD опять предпочитает ключи RSA. Кроме того, иначе как багом нельзя назвать нынешнее поведение ssh, когда он при наличии DSA-отпечатка в known_hosts и отсутствии RSA не использует DSA, а говорит Host key verification failed (при запуске без controlling terminal, иначе входит в диалоговый режим и предлагает сохранить RSA-отпечаток).
Серверов и отпечатков много, чтобы быстро восстановить работу, в /etc/ssh/ssh_config
вписал строчку, восстанавливающую поведение ssh в версии 7.4:HostKeyAlgorithms ssh-dss,ssh-rsa