Краткая суть:
- Клиент - дистрибутив gentoo со свежими обновлениями net-misc/openssh-7.9_p1::gentoo USE="X audit libedit pam pie ssl -X509 -bindist -debug -hpn -kerberos -ldns -libressl -livecd -sctp (-selinux) -static -test"
OpenSSH_7.9p1 11 Sep 2018
- Сервер - старое оборудование с ssh доступом
После очередного обновления отказал доступ с генты на оборудование "no matching key exchange method found"
Это в принципе не новость, давно об этом говорили об отключении старых алгоритмов.
Тем не менее в интернете в основном о принудительном включении алгоритма в клиенте ssh -oKexAlgorithms=+diffie-hellman-group1-sha1 user@legacyhost
Это не отрабатывало. При проверке допустимых вариантов
$ ssh -Q kex
curve25519-sha256
curve25519-sha256@libssh.org
Поиском не обнаружено такого малого количества вариантов.
Тем не менее попробовал перекомпилировать openssh c «USE=ssl».
Это помогло
$ssh -Q kex
diffie-hellman-group1-sha1
diffie-hellman-group14-sha1
diffie-hellman-group14-sha256
diffie-hellman-group16-sha512
diffie-hellman-group18-sha512
diffie-hellman-group-exchange-sha1
diffie-hellman-group-exchange-sha256
ecdh-sha2-nistp256
ecdh-sha2-nistp384
ecdh-sha2-nistp521
curve25519-sha256
curve25519-sha256@libssh.org
Соответственно, к оборудованию нормально подключился.
Осталось понять - это BUG или так задумано?
P.S.
Предупреждая вопросы - openssh всегда компилировал без openssl.
Предупреждая предложения - другие библиотеки ssl или варианты ssh - не рассматриваю. Хотя и интересно как «это дело» в них.