null

Unable to negotiate with port 22: no matching host key type found. Their offer: ssh-dss

При подключении по ssh получаем ошибку:

Unable to negotiate with hostname port 22: no matching host key type found. Their offer: ssh-rsa,ssh-dss

​​​​В чём проблема.

Ошибка из-за того, что новая версия SSH не включает по умолчанию поддержку RSA/SHA1, то есть ssh-rsa. Вместо этого ожидается, что сервер будет использовать RSA/SHA-256/512. С более новыми серверами с более свежим SSH проблемы не будет, но в данном случае hostname более старой версии.

Что делать?

Поддержка RSA/SHA1 осталась. Можно задействовать один из двух вариантов.

1. При запуске сессии ssh используем следующие ключи:

ssh -oHostKeyAlgorithms=+ssh-dss  username@example.com

​​​​​​​2. Можно дописать в ~/.ssh/config следующие строки:
Host <hostname>
    HostkeyAlgorithms +ssh-rsa
    PubkeyAcceptedAlgorithms +ssh-rsa

​​​​​​​Где "hostname" - имя хоста. Так же можно использовать "*" чтобы применить настройка ко всем хостам.