Версия OpenSSH, включенная в 16.04, отключает ssh-dss. Есть аккуратная страница с устаревшей информацией, которая включает в себя эту проблему: http://www.openssh.com/legacy.html
В двух словах, вы должны добавить опцию -oHostKeyAlgorithms=+ssh-dss к команде SSH:
Вы также можете добавить шаблон хоста в свой ~/.ssh/config таким образом, вам не нужно каждый раз указывать ключевой алгоритм:
Host nas HostName 192.168.8.109 HostKeyAlgorithms=+ssh-dss
Это имеет дополнительное преимущество в том, что вам не нужно вводить IP-адрес. Вместо, ssh распознает хозяина nas и знать, к чему подключиться. Конечно, вы можете использовать вместо него любое другое имя.
Обратите внимание, что PubkeyAcceptedKeyTypes является обратно совместимым псевдонимом для PubkeyAcceptedAlgorithms который был предложен в статье. Если вы используете его, ту же конфигурацию можно использовать со старыми версиями клиента OpenSSH, например, если вы совместно используете конфигурацию с контейнерами docker.
Вы можете сделать то же самое для других хостов или использовать Host * чтобы разрешить RSA для любого хоста.
Редактирование файла ~/.ssh/config - лучший вариант. Если у вас есть несколько хостов для подключения в одной подсети, вы можете использовать следующий метод, чтобы избежать ввода каждого хоста в файл:
Host 192.168.8.* HostKeyAlgorithms=+ssh-dss
Это отлично работает для меня, так как у меня есть несколько коммутаторов Brocade для управления, и они начали жаловаться на ключ хоста после того, как я перешел на Ubuntu 16.04.