web-dev-qa-db-ja.com

Debian 8.0でdiffie-hellman-group1-sha1鍵交換を有効にする方法は?

diffie-hellman-group1-sha1キー交換メソッドを要求するサーバーにSSHで接続できません。

ssh 123.123.123.123
Unable to negotiate with 123.123.123.123 port 22: no matching key exchange method found. Their offer: diffie-hellman-group1-sha1

Debian 8.0でdiffie-hellman-group1-sha1鍵交換方法を有効にする方法は?

私は(提案されたように here )を試してみました

  1. 次の行をmy /etc/ssh/ssh_configに追加します

    KexAlgorithms diffie-hellman-group1-sha1,[email protected],ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group14-sha1
    Ciphers 3des-cbc,blowfish-cbc,aes128-cbc,aes128-ctr,aes256-ctr
    
  2. でキーを再生成

    ssh-keygen -A
    
  3. でsshを再起動します

    service ssh restart
    

    それでもエラーが発生します。

78

OpenSSH Webサイトには、このような レガシー問題 専用のページがあります。次のアプローチを提案しますクライアント

ssh -oKexAlgorithms=+diffie-hellman-group1-sha1 123.123.123.123

より永続的に、追加

Host 123.123.123.123
    KexAlgorithms +diffie-hellman-group1-sha1

~/.ssh/config

これにより、クライアントで古いアルゴリズムが有効になり、サーバーに接続できるようになります。

119
Stephen Kitt

私はこの解決策を試しましたが、私の問題は、最近アップグレードしたサーバー(ubuntu 14-> ubuntu 16)に接続している多くの(レガシー)クライアントがあったことです。

Openssh6-> openssh7からの変更は、デフォルトでdiffie-hellman-group1-sha1鍵交換方式が無効になっています。

this および this を読んだ後、/etc/ssh/sshd_configファイルに必要な変更を加えました。

#Legacy changes
KexAlgorithms +diffie-hellman-group1-sha1
Ciphers +aes128-cbc

しかし、より広範なレガシーな変更のセットは( here から取得)

#Legacy changes
KexAlgorithms diffie-hellman-group1-sha1,[email protected],ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group14-sha1
Ciphers 3des-cbc,blowfish-cbc,aes128-cbc,aes128-ctr,aes256-ctr
20
arod