GNU/Linux >> Linux の 問題 >  >> Linux

SSH の問題:ソケットからの読み取りに失敗しました:ピアによって接続がリセットされました

解決策 1:

問題はサーバー側のバグのようです。クライアントが暗号のリストを送信するとき、openssh サーバーはおそらく、単一のシステム コールでリストを読み取れることを期待しています。

サポートされている暗号のリストが 1 つのパケットで送信できる長さよりも長い場合、サーバーは最初の呼び出しで予想よりも少ないバイトを取得する可能性があります。サーバーでの正しい動作は、別の呼び出しを実行して残りのバイトを取得することです。しかし、問題の説明から、暗号の完全なリストを一度に取得できなかった場合、サーバーは代わりに接続を閉じます。クライアントからの次のパケットが到着すると、サーバーは接続のリセットをクライアントに送信します。

暗号の短いリストを使用するようにクライアントを構成すると、バグを回避できます。 openssh クライアントは、次の場所で暗号のリストを探します:

<オール>
  • コマンドラインで -c cipher_spec または -o Ciphers=cipher_spec を使用
  • ~/.ssh/config で、関連するホスト セクションまたは最初のホストの前に暗号 cipher_spec を指定します。
  • ~/.ssh/config と同じ形式を使用して /etc/ssh/ssh_config 内
  • コンパイル時にクライアントに組み込まれるデフォルトのリスト
  • 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
    

    Linux
    1. Ssh –リモートコマンドを実行し、Ssh接続から完全に切り離しますか?

    2. TmuxがSshで起動しないようにしますか?

    3. 「ピアによる接続のリセット」 – 特定のユーザーのみで CentOS/RHEL システムに ssh する際のエラー

    1. Linux:タイムアウトのあるソケットからの読み取りまたは受信はありますか?

    2. SSH 接続を終了するにはどうすればよいですか?

    3. SSH 経由で接続しているときに、ホストのキーボードから入力を読み取るにはどうすればよいですか?

    1. SSH 接続からの短すぎる自動ログアウトに対するクライアント側の回避策はありますか?

    2. Linux rdesktop ERROR recv ピアによる接続のリセット

    3. ssh での rsync の読み取り専用/リモート ホストからのコピーのみを制限する