web-dev-qa-db-fra.com

Retour SSH: aucun type de clé d'hôte correspondant trouvé. Leur offre: ssh-dss

Je suis habitué à utiliser PuTTY sur une machine Windows ou un terminal de ligne de commande OSX pour SSH dans un NAS, sans configuration du client.

Ubuntu 16.04 tente de SSH dans le NAS (via le réseau local):

ssh [email protected]

Unable to negotiate with 192.168.8.109 port 22: no matching Host key type found. Their offer: ssh-dss
  1. Ce résultat/réponse est-il intentionnel?
  2. Existe-t-il une simple correction permettant l’accès SSH au NAS?
72
gatorback

La version d'OpenSSH incluse dans 16.04 désactive ssh-dss. Il existe une page soignée avec des informations héritées qui inclut ce problème: http://www.openssh.com/legacy.html

En bref, vous devriez ajouter l’option -oHostKeyAlgorithms=+ssh-dss à la commande SSH:

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

Vous pouvez également ajouter un modèle d'hôte dans votre ~/.ssh/config afin de ne pas avoir à spécifier l'algorithme de clé à chaque fois:

Host nas
  HostName 192.168.8.109
  HostKeyAlgorithms=+ssh-dss

Cela présente l'avantage supplémentaire que vous n'avez pas besoin de taper l'adresse IP. ssh reconnaîtra l'hôte nas et saura où se connecter. Bien sûr, vous pouvez utiliser n'importe quel autre nom à la place.

127
Kalle Elmér

Éditer le fichier ~/.ssh/config est la meilleure option. Si vous devez vous connecter à plusieurs hôtes sur le même sous-réseau, vous pouvez utiliser la méthode suivante pour éviter d'entrer chaque hôte dans le fichier:

 Host 192.168.8.*
  HostKeyAlgorithms=+ssh-dss

Cela fonctionne très bien pour moi car j'ai un certain nombre de commutateurs Brocade à gérer et ils ont commencé à se plaindre de la clé de l'hôte après avoir migré vers Ubuntu 16.04.

8
truxpin

Si vous souhaitez utiliser OpenSSH plus récent pour vous connecter à des serveurs obsolètes:

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

Ajoutez -v si vous voulez voir ce qui se passe et -o HostKeyAlgorithms = ssh-dss si cela ne fonctionne toujours pas:

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

Vous pouvez aussi, bien sûr, éditer/etc/ssh/ssh_config ou ~/.ssh/ssh_config, et ajouter:

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

https://forum.ctwug.za.net/t/fyi-openssh-to-access-rbs-openssh-7/6069 mentionne le correctif suivant sur les routeurs Mikrotik:

/ip ssh set strong-crypto=yes

(Notez ceci ici parce que cette réponse apparaît également lors de recherches Web lorsque vous recherchez un message d'erreur similaire.)

3
Dagelf

Pour moi ajouté dans .ssh\config travaillé :

Host *
HostkeyAlgorithms +ssh-dss
PubkeyAcceptedKeyTypes +ssh-dss
0
Eric Chen