私はサーバーを持っています(IPはabcdと仮定します)。ユーザーはSSH経由でログインできます。今、IPはそのままで物理マシンを変更したいと考えています。新しいマシンは、次のようなユーザーによって引き続きアクセスされます。
$ssh ABCD
問題は、ユーザーがログインしようとするたびに、次の ssh キー不一致エラーが発生することです。
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ 警告: リモート ホストの識別が変更されました! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 誰かが何か悪いことをしている可能性があります! 誰かが今あなたを盗聴している可能性があります (中間者攻撃)。 RSA ホスト キーが変更された可能性もあります。 リモートホストから送信されたRSAキーのフィンガープリントは 02:dc:c6:18:1b:34:b7:1d:fa:90:ab:e1:95:48:69:84. システム管理者に問い合わせてください。 このメッセージを削除するには、/home/user/.ssh/known_hosts に正しいホスト キーを追加します。 /home/user/.ssh/known_hosts:37 に問題のあるキーがあります 卒業生の RSA ホスト キーが変更されたため、厳密なチェックを要求しました。 ホストキーの検証に失敗しました。
ユーザーはファイル ~/.ssh/known_hosts から行番号 37 を削除でき、次回は yes/no プロンプトが表示されることはわかっています。私が望んでいるのは、ユーザーがこのマシンの置き換えについて何も知らないまま、パスワードのプロンプトだけが表示されるようにすることです。
どうやってするか?
答え1
としてエサベル前述のように、現在のホスト キーを新しいサーバーにコピーできます。
ファイルを開くと、ホスト キーを見つけることができますsshd_config
(私の Ubuntu 12.04 ボックスでは/etc/ssh/sshd_config
)。構成ファイルでHostKey
エントリを探します。これらのエントリは、ホスト キー ファイルが配置されている場所を示します。これらのファイルを新しいサーバーにコピーし、コピーしたキーを指すように新しいサーバーを更新できますsshd_config
(または、新しいサーバーに既に存在するファイルを上書きします)。
また、マニュアル ページのこのセクションsshd_config
、特に権限に関する部分に注意してください。
SSH が使用する秘密ホスト キーを含むファイルを指定します。デフォルトは
/etc/ssh/ssh_host_key
プロトコル バージョン 1 の場合、/etc/ssh/ssh_host_dsa_key
、プロトコル バージョン 2 の場合/etc/ssh/ssh_host_ecdsa_key
です/etc/ssh/ssh_host_rsa_key
。グループ/ワールド アクセス可能なファイルの場合、sshd(8) はそのファイルの使用を拒否することに注意してください。複数のホスト キー ファイルを持つことができます。SSH プロトコルのバージョン 1 では「rsa1」キーが使用され、バージョン 2 では「dsa」、「ecdsa」、または「rsa」キーが使用されます。
答え2
元のホスト キーがあれば、それを復元してエラーを停止できます。
または、sshd 設定ファイルで StrictHostKeyChecking をオフにすることもできます。
...しかし、これをするのは、非常にひどい考えです。
クライアント マシンでのみ実行する方法があればssh-keygen -R server.example.com
、それが最善の方法です。ホスト キーのチェックをオフにすることは、「おい、攻撃してくれ」と言っているようなものです。変更があったときに目立たないようにしたいのはわかりますが、変更を隠すことよりもセキュリティを最優先にすべきです。
答え3
こうやって試してみて
cat ~/.ssh/id_rsa.pub | ssh <user>@<hostname> 'cat >> .ssh/authorized_keys && echo "Key copied"'
.ssh フォルダが存在しない場合は、上記のコマンドは失敗することに注意してください。また、ファイルを作成するときに、可能な限り最小限の権限 (基本的に所有者のみの読み取り/書き込み) を設定することをお勧めします。より高度なコマンドを次に示します。
cat ~/.ssh/id_rsa.pub | ssh <user>@<hostname> 'umask 0077; mkdir -p .ssh; cat >> .ssh/authorized_keys && echo "Key copied"'
この問題について詳しく知るには、次の Web サイトにアクセスしてください。SSH ホスト キー変更エラー