解決策 1:
問題はサーバー側のバグのようです。クライアントが暗号のリストを送信するとき、openssh サーバーはおそらく、単一のシステム コールでリストを読み取れることを期待しています。
サポートされている暗号のリストが 1 つのパケットで送信できる長さよりも長い場合、サーバーは最初の呼び出しで予想よりも少ないバイトを取得する可能性があります。サーバーでの正しい動作は、別の呼び出しを実行して残りのバイトを取得することです。しかし、問題の説明から、暗号の完全なリストを一度に取得できなかった場合、サーバーは代わりに接続を閉じます。クライアントからの次のパケットが到着すると、サーバーは接続のリセットをクライアントに送信します。
暗号の短いリストを使用するようにクライアントを構成すると、バグを回避できます。 openssh クライアントは、次の場所で暗号のリストを探します:
<オール>
2 つの構成ファイルは、それぞれユーザーごとの設定とシステム全体の設定です。 Ciphers aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc
の使用 Eric が提案したように、問題なく動作するはずです。
解決策 2:
ssh 構成ファイル (/etc/ssh/ssh_config など、$PREFIX などに依存) で暗号を指定できます。コマンド ラインで ssh クライアントに渡すオプションはすべて、ssh (クライアント) 構成ファイルで設定できます。
関連する行は次のとおりです (コメントを外すだけです):
# Ciphers aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc
解決策 3:
それを修正する私の方法、それが誰かに役立つことを願っています:
# Recreate host keys
sudo rm /etc/ssh/ssh_host_*
sudo ssh-keygen -A
# Re-install SSh
sudo apt-get --reinstall install openssh-server openssh-client
値を追加して sshd_config を編集します
add : MaxAuthTries 3
値のコメントを解除して ssh_config を編集します
Ciphers aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc