SSH возвращает: не найдено соответствующего типа ключа хоста. Их предложение: ssh-dss

41

Я привык использовать Putty в окне Windows или терминале командной строки OSX для SSH в NAS, без какой-либо конфигурации клиента.

Ubuntu 16.04 пытается SSH в NAS (через LAN):

ssh [email protected]

Unable to negotiate with 192.168.8.109 port 22: no matching host key type found. Their offer: ssh-dss
  1. Является ли этот результат / ответ намеренным?
  2. Есть ли простая коррекция, позволяющая SSH-доступ к NAS?
задан gatorback 12.10.2016 в 14:24
источник

3 ответа

71

Версия OpenSSH, включенная в 16.04, отключает ssh-dss. Существует аккуратная страница с устаревшей информацией, которая включает эту проблему: Ссылка

Вкратце, вы должны добавить опцию -oHostKeyAlgorithms=+ssh-dss в команду SSH:

ssh -oHostKeyAlgorithms=+ssh-dss [email protected]

Вы также можете добавить шаблон хоста в ~/.ssh/config , поэтому вам не нужно указывать алгоритм ключа каждый раз:

Host nas
  HostName 192.168.8.109
  HostKeyAlgorithms=+ssh-dss

Это имеет дополнительное преимущество, что вам не нужно вводить IP-адрес. Вместо этого ssh распознает хост nas и узнает, к чему подключиться. Конечно, вы можете использовать любое другое имя вместо него.

    
ответ дан Kalle Elmér 12.10.2016 в 15:12
источник
6

Редактирование файла ~ / .ssh / config - лучший вариант. Если у вас есть несколько хостов для подключения к одной подсети, вы можете использовать следующий метод, чтобы избежать ввода каждого узла в файл:

 Host 192.168.8.*
  HostKeyAlgorithms=+ssh-dss

Это отлично работает для меня, поскольку у меня есть несколько переключателей Brocade для управления, и они начали жаловаться на ключ хоста после того, как я перешел на Ubuntu 16.04.     

ответ дан truxpin 06.07.2017 в 12:59
2

Если вы хотите использовать новый OpenSSH для подключения к устаревшим серверам:

ssh -o KexAlgorithms=diffie-hellman-group14-sha1 -oHostKeyAlgorithms=+ssh-dss my.host.com

Добавьте -v, если вы хотите увидеть, что происходит, и -o HostKeyAlgorithms = ssh-dss, если он все еще не работает:

ssh -v -o HostKeyAlgorithms=ssh-dss -o KexAlgorithms=diffie-hellman-group14-sha1 my.host.com

Вы также можете, конечно, отредактировать / etc / ssh / ssh_config или ~ / .ssh / ssh_config и добавить:

Host my.host.com *.myinsecure.net 192.168.1.* 192.168.2.*
    HostKeyAlgorithms ssh-dss
    KexAlgorithms diffie-hellman-group1-sha1    

Ссылка упоминает следующее исправление на Mikrotik Роутерборды:

/ip ssh set strong-crypto=yes

(Отмечая это, потому что этот ответ также возникает при поиске в Интернете при поиске аналогичного сообщения об ошибке.)

    
ответ дан Dagelf 20.02.2017 в 16:48