基本的な ssh クライアント コマンドの記事で以前に説明したように、マシンに対して初めて ssh を実行するとき (またはリモート マシンでキーが変更されたとき) は、ホストの信頼性について「はい」と言うように求められます。 .
この機能は、StrictHostKeyChecking ssh パラメータを使用して制御されます。デフォルトでは、StrictHostKeyChecking は yes に設定されています。
「StrictHostKeyChecking yes」のデフォルト設定は、セキュリティの観点から、トロイの木馬攻撃からシステムを保護するための最良のオプションです。何をしているのかわからない場合は、StrictHostKeyChecking を no に設定しないでください。
一時的に無効にした方がよい場合もあります。たとえば、多くの既知のホストに初めて接続するときは、この機能を無効に設定して (つまり、ホスト キーに対して yes を要求する)、ssh にすべてのホスト キーを自動的に追加させたい場合があります。後でこの機能を有効にすることができます。
サーバーにパスワードなしの自動ログインを構成し、リモート ホスト キーが何らかの理由で変化し続ける場合 (変化の理由がわかっている場合)、リモート ホスト キーが変化し続けるという問題が解決されるまで、StrictHostKeyChecking を no に設定することを検討してください。
ssh コマンド ラインから、以下に示すように StrictHostKeyChecking オプションを渡すことができます。このオプションは ssh_config ファイルでも設定できます
# ssh -o 'StrictHostKeyChecking no' user@host
サーバーに初めてログインすると、プロンプトを表示せずに RSA が既知のホストのリストに永久に追加されます。 .
ただし、キーが変更された場合 (通常、OS (または sshd) を再インストールすると、リモート ホスト キーが変更されます)、以下に示すように古い無効なキーを削除する必要があります。
問題のある ssh キーを削除します
リモート ホスト キーが変更されると、次のエラーが表示されます (以前に有効なリモート ホスト キーで接続した後)。
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY! Someone could be eavesdropping on you right now (man-in-the-middle attack)! It is also possible that the RSA host key has just been changed. The fingerprint for the RSA key sent by the remote host is a7:a8:f2:97:94:33:58:b7:9d:bc:e0:a6:6b:f7:0a:29. Please contact your system administrator. Add correct host key in /home/ramesh/.ssh/known_hosts to get rid of this message. Offending key in /home/ramesh/.ssh/known_hosts: 6 Permission denied (publickey,password).
先に進むには、キーを削除する必要があります。次のコマンドを使用して、問題のあるキーを削除してください。
# sed -i '6d' ~/.ssh/known_hosts
注意 :6d を変更します 表示されている行番号に従ってください。
sed に -i オプションがない場合は、perl を使用するか、エディタを使用して問題のあるキーを削除してください。
Perl ソリューション:
# perl -pi -e 's/\Q$_// if ($. == 6);' ~/.ssh/known_hosts
注意 :行番号を 6 から適切な行番号に変更してください。