免責事項: この記事には、サードパーティ製品に関する情報が含まれている場合があります。 そのような情報は参照だけのためです。 Alibaba Cloudは、明示または黙示を問わず、サードパーティ製品のパフォーマンスと信頼性、および製品に対する操作の潜在的な影響に関して、いかなる保証も行いません。
問題の説明
SSHを使用してLinuxのECSインスタンスに接続すると、クライアントまたはサーバーのセキュアログに次のような情報が表示されることがあります。 この場合、ECSインスタンスへのログインに失敗する可能性があります。
ソケットからの読み取りに失敗: ピアによる接続リセット。
192.X. X.1によって接続が閉じられました。
sshdエラー: ホストキーをロードできませんでした。
fatal: サポートされていないキー交換アルゴリズム [preauth] 。
192.X. X.1のDSAホストキーが変更され、厳密なチェックが要求されました。
ホストキーの検証に失敗しました。
ssh_exchange_identification: 読み取り: ピアによる接続リセット。
原因
この問題の一般的な原因は、次に示すように、SSHサービスに関連するキーファイルが異常であるため、sshdデーモンプロセスが正しいSSHホストキーをロードできないことです。
注: 次の表に、一般的な問題の原因を示します。 実際のシナリオに基づいて原因を分析できます。
関連するキーファイルがファイルの破損、削除、改ざんなどの異常です。
関連するキーファイルの権限が正しく設定されておらず、データを正しく読み取ることができません。
解決策
以下の点にご注意ください。
インスタンス設定やデータの変更など、リスクを引き起こす可能性のある操作を実行する前に、データのセキュリティを確保するために、インスタンスのディザスタリカバリ機能とフォールトトレランス機能を確認することを推奨します。
ECSおよびRDSインスタンスを含むがこれらに限定されないインスタンスの構成およびデータを変更する場合、スナップショットを作成するか、RDSログバックアップを有効にすることを推奨します。
Alibaba Cloud管理コンソールでログオンアカウントやパスワードなどのセキュリティ情報を承認または送信した場合は、そのような情報をタイムリーに変更することを推奨します。
この問題を解決するには、さまざまな状況に基づいて次の設定を確認または変更します。
ファイル権限の確認
SSHサービスは、関連するキーファイルの権限を確認します。 たとえば、秘密鍵のデフォルトの権限は600です。 このポリシーが777するように設定されている場合、他のユーザーにはファイルの読み取りまたは変更権限があります。 SSHサービスは、設定をセキュリティリスクと見なし、クライアントが接続に失敗する原因となります。
インスタンスにログインし、次のコマンドを実行して関連ファイルのデフォルトの権限を復元します:
cd /etc/ssh/ chmod 600 ssh_host_* chmod 644 *.pub
llコマンドを実行して、ファイルの権限が正しいことを確認します。
total 156 -rw-------. 1 root root 125811 Nov 23 2013 moduli -rw-r--r--. 1 root root 2047 Nov 23 2013 ssh_config -rw------- 1 root root 3639 May 16 11:43 sshd_config -rw------- 1 root root 668 May 20 23:31 ssh_host_dsa_key -rw-r--r-- 1 root root 590 May 20 23:31 ssh_host_dsa_key.pub -rw------- 1 root root 963 May 20 23:31 ssh_host_key -rw-r--r-- 1 root root 627 May 20 23:31 ssh_host_key.pub -rw------- 1 root root 1675 May 20 23:31 ssh_host_rsa_key -rw-r--r-- 1 root root 382 May 20 23:31 ssh_host_rsa_key.pub
ファイルの有効性の確認
上記の手順を参照すると、関連するファイルの権限を変更した後は、インスタンスに正常に接続できません。 SSHサービスは、起動時に失われたキーファイルを自動的に再構築します。 次のコマンドを順番に実行して、ssh_host_* ファイルが存在することを確認します。
cd /etc/ssh/ ll
次のコマンド出力が返されます。
total 156 -rw-------. 1 root root 125811 Nov 23 2013 moduli -rw-r--r--. 1 root root 2047 Nov 23 2013 ssh_config -rw------- 1 root root 3639 May 16 11:43 sshd_config -rw------- 1 root root 672 May 20 23:08 ssh_host_dsa_key -rw-r--r-- 1 root root 590 May 20 23:08 ssh_host_dsa_key.pub -rw------- 1 root root 963 May 20 23:08 ssh_host_key -rw-r--r-- 1 root root 627 May 20 23:08 ssh_host_key.pub -rw------- 1 root root 1675 May 20 23:08 ssh_host_rsa_key -rw-r--r-- 1 root root 382 May 20 23:08 ssh_host_rsa_key.pub
次のコマンドを実行して、関連するファイルを削除します。
rm -rf ssh_host_*
説明注意: UbuntuまたはDebainの場合、次のコマンドを実行して関連ファイルを削除できます。
sudo rm -r /etc/ssh/ssh * key
llコマンドを実行して、ファイルが正常に削除されたことを確認します。
total 132 -rw-------. 1 root root 125811 Nov 23 2013 moduli -rw-r--r--. 1 root root 2047 Nov 23 2013 ssh_config -rw------- 1 root root 3639 May 16 11:43 sshd_config
次のコマンドを実行してSSHサービスを再起動すると、関連ファイルが自動的に生成されます。
service sshd restart
説明注意: UbuntuまたはDebainの場合、次のコマンドを実行してSSHを再起動できます。
sudo dpkg-openssh-serverの再構成
llコマンドを実行して、ssh_host_* ファイルが生成されたことを確認します。
total 156 -rw-------. 1 root root 125811 Nov 23 2013 moduli -rw-r--r--. 1 root root 2047 Nov 23 2013 ssh_config -rw------- 1 root root 3639 May 16 11:43 sshd_config -rw------- 1 root root 668 May 20 23:16 ssh_host_dsa_key -rw-r--r-- 1 root root 590 May 20 23:16 ssh_host_dsa_key.pub -rw------- 1 root root 963 May 20 23:16 ssh_host_key -rw-r--r-- 1 root root 627 May 20 23:16 ssh_host_key.pub -rw------- 1 root root 1671 May 20 23:16 ssh_host_rsa_key -rw-r--r-- 1 root root 382 May 20 23:16 ssh_host_rsa_key.pub
参考資料
問題が解決しない場合は、さらにトラブルシューティングと分析を行うために、SSHを使用してLinuxインスタンスに失敗したリモートログインをトラブルシューティングするためのガイドラインを参照してください。
適用対象
Elastic Compute Service