このトピックでは、SSH クライアントから Linux の Elastic Computer Service (ECS) インスタンスに接続する際に、「ssh_exchange_identification: read: Connection reset by peer」というエラーメッセージが表示される問題の解決方法について説明します。
問題の説明
SSH クライアントから Linux インスタンスに接続する際、正しいユーザー名とパスワードを使用しても、次のエラーメッセージが表示されます。
ssh_exchange_identification: read: Connection reset by peer.
sshd[11949]: refused connect from 192.168.0.0 (192.168.0.0).原因
この問題は、以下の原因で発生する可能性があります。
インスタンス上の TCP Wrapper 設定ファイルにエラーがあります。TCP Wrapper は、Linux オペレーティングシステムでネットワークサービスへのアクセスを制御するために使用されるツールです。ほとんどの場合、TCP Wrapper の tcpd デーモンは
/etc/hosts.allowファイルと/etc/hosts.denyファイルをチェックして、特定の IP アドレスまたはホストからの TCP 接続を許可するかどうかを判断します。/etc/hosts.allowファイルまたは/etc/hosts.denyファイルに設定エラーが含まれている場合、SSH 接続で例外が発生します。この問題を解決するには、/etc/hosts.allowファイルまたは/etc/hosts.denyファイルを変更します。詳細については、本トピックの「方法 1:TCP Wrapper 設定ファイルの変更」セクションをご参照ください。インスタンス上の liblz4.so.1 ファイルが失われています。このファイルは liblz4.so.1.7.5 ファイルへのシンボリックリンクです。liblz4.so.1 ファイルが失われると、SSH 接続で例外が発生します。詳細については、本トピックの「方法 2:liblz4.so.1 シンボリックリンクの作成」セクションをご参照ください。
オンプレミスデバイスが接続されているネットワークで接続エラーが発生しています。ネットワークに接続エラーがないか確認する必要があります。詳細については、本トピックの「方法 3:オンプレミスデバイスのネットワークの確認」セクションをご参照ください。
ソリューション
方法 1:TCP Wrapper 設定ファイルの変更
設定ファイルを変更することで、インスタンスを再起動することなく、アクセス制御ポリシーを動的に設定できます。このセクションでは、/etc/hosts.deny ファイルの変更方法について説明します。
Virtual Network Computing (VNC) を使用して ECS インスタンスに接続します。
詳細については、「VNC を使用したインスタンスへの接続」をご参照ください。
次のコマンドを実行して、
/etc/hosts.allowファイルまたは/etc/hosts.denyファイルにall:all:denyやsshd:<IP address>:denyのような接続を拒否する設定が含まれているかどうかを確認します。cat /etc/hosts.denyファイルに
all:all:denyやsshd:<IP address>:denyのような設定が含まれていない場合、この問題は TCP Wrapper が原因ではありません。この場合は、他のソリューションを使用して問題のトラブルシューティングを行ってください。ファイルに
all:all:denyやsshd:<IP address>:denyのような設定が含まれている場合は、次のステップに進みます。この例では、/etc/hosts.deny ファイルに設定が含まれています。
/etc/hosts.denyファイルを変更します。/etc/hosts.denyファイルを開きます。all:all:denyまたはsshd:<IP address>:denyを含む各行の前にシャープ記号 (#) を追加して、行をコメントアウトします。# all:all:deny # sshd:<IP address>: deny
方法 2: liblz4.so.1 シンボリックリンクを作成する
VNC を使用して ECS インスタンスに接続します。
詳細については、「VNC を使用したインスタンスへの接続」をご参照ください。
次のコマンドを実行して、liblz4.so.1.7.5 ファイルを検索します。
find / -name "liblz4*"liblz4.so.1.7.5 ファイルが存在しない場合は、正常な ECS インスタンスから現在の ECS インスタンスの
/usr/lib64/ディレクトリに liblz4.so.1.7.5 ファイルをコピーします。次のコマンドを実行して、シンボリックリンクを作成します。
ln -s /usr/lib64/liblz4.so.1.7.5 /usr/lib64/liblz4.so.1
方法 3:オンプレミスデバイスのネットワークの確認
オンプレミスデバイスを 4G モバイルネットワークなどの別のネットワークに接続し、オンプレミスデバイスからインスタンスに接続できるかどうかを確認します。
インスタンスに接続できる場合、元のネットワークに接続エラーがあります。エラーのトラブルシューティングを行ってください。