web-dev-qa-db-ja.com

SSHは戻ります:一致するホストキータイプが見つかりません。彼らの申し出:ssh-dss

クライアントを設定せずに、WindowsボックスまたはOSXコマンドライン端末でPuTTYを使用してNASにSSHで接続することに慣れています。

Ubuntu 16.04は、NAS(LAN経由)へのSSHを試行します。

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. NASへのSSHアクセスを可能にする簡単な修正はありますか?
79
gatorback

16.04に含まれるOpenSSHのバージョンは、ssh-dssを無効にします。この問題を含むレガシー情報を含むすっきりしたページがあります: http://www.openssh.com/legacy.html

一言で言えば、オプション-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を認識し、接続先を認識します。もちろん、代わりに他の名前を使用できます。

137
Kalle Elmér

〜/ .ssh/configファイルを編集するのが最適なオプションです。同じサブネットに接続するホストが多数ある場合は、次の方法を使用して、ファイル内の各ホストの入力を回避できます。

 Host 192.168.8.*
  HostKeyAlgorithms=+ssh-dss

これは、管理するBrocadeスイッチが多数あり、Ubuntu 16.04に移行した後、ホストキーについて不満を抱き始めたため、私にとってはうまく機能しています。

10
truxpin

新しい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    

https://forum.ctwug.za.net/t/fyi-openssh-to-access-rbs-openssh-7/6069 は、Mikrotik Routerboardsの次の修正に言及しています。

/ip ssh set strong-crypto=yes

(同様のエラーメッセージを探している場合、この回答はWeb検索でも表示されるため、ここで注意してください。)

5
Dagelf

私にとって これは.ssh\configに追加されました

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