クライアントを設定せずに、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
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
を認識し、接続先を認識します。もちろん、代わりに他の名前を使用できます。
〜/ .ssh/configファイルを編集するのが最適なオプションです。同じサブネットに接続するホストが多数ある場合は、次の方法を使用して、ファイル内の各ホストの入力を回避できます。
Host 192.168.8.*
HostKeyAlgorithms=+ssh-dss
これは、管理するBrocadeスイッチが多数あり、Ubuntu 16.04に移行した後、ホストキーについて不満を抱き始めたため、私にとってはうまく機能しています。
新しい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検索でも表示されるため、ここで注意してください。)
私にとって これは.ssh\config
に追加されました :
Host *
HostkeyAlgorithms +ssh-dss
PubkeyAcceptedKeyTypes +ssh-dss