SSH で VPS に接続すると「問題のあるキー」という警告が表示される

SSH で VPS に接続すると「問題のあるキー」という警告が表示される

実行すると:

ssh root@myVPS

次の警告が表示されます:

Warning: the RSA host key for 'myVPS' differs from the key for the IP address 'xxx.xx.xxx.xx'
Offending key for IP in /home/manolo/.ssh/known_hosts:1
Matching host key in /home/manolo/.ssh/known_hosts:2
Are you sure you want to continue connecting (yes/no)?

「はい」と入力すると正常に動作しますが、なぜこの警告がスローされるのか分かりません。なぜスローされるのか、またそれを回避する方法について何かアドバイスはありますか?

答え1

おそらく、ある時点で VPS を再インストールし、ホスト名や IP アドレスを保持したことでしょう。再インストール時に、VPS のホスト キーが再生成され、それが のホスト キーと異なるため~/.ssh/known_hosts、問題を検出できるように警告が表示されます。これは、パスワードを収集するなど、正当なホストを置き換えるまったく異なるシステムに接続するのを防ぐために行われます。

そのようなことが起こった場合は、問題のあるキーをknown_hostsファイルから削除するだけですべて正常になりますが、そのような再インストールに気付いていない場合は、キーが異なる理由を理解するためにさらに調査する必要があります。

答え2

私も同じ問題を抱えていましたが、解決は非常に簡単です。known_hosts ファイルを開いてvi .ssh/known_hosts、サーバー名を検索してください。IP アドレスなしでホスト キーが見つかった場合は、そのファイルに IP を追加すると問題が解決します。以前:

myVPS ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAsIfCSqA2rSlTvH8AMrMjpD66y5dOsYOPp30AXYGAEAFkVBs1+51lbRNyiFenpbxOyQjyvpgVJdkC4kqgG66xE6IPBrqpUFL3KjbUCTZ8sNHWn+I89bAMWDzGEiqaad/powDxgZgFe74bV82Se1igbFmHlHwwb7DEAcjXh34XbcMgJ0vIExJqPV1zccKkCXhstQy7av0+I7GRz5wIbYiIFMungKIhX3upwQOzyW/E1RDmq89BRv1g2ch1xsKK5OpNjCCFP2OSYPybJmFXhjOWI7LUdFASmaw5Z1az9LLpLKQePQ4mWsL/ON8Z9uvzhQig3hdQ/cnrAsRLShn4rJratw==

IP を追加した後:

myVPS,198.51.100.42 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAsIfCSqA2rSlTvH8AMrMjpD66y5dOsYOPp30AXYGAEAFkVBs1+51lbRNyiFenpbxOyQjyvpgVJdkC4kqgG66xE6IPBrqpUFL3KjbUCTZ8sNHWn+I89bAMWDzGEiqaad/powDxgZgFe74bV82Se1igbFmHlHwwb7DEAcjXh34XbcMgJ0vIExJqPV1zccKkCXhstQy7av0+I7GRz5wIbYiIFMungKIhX3upwQOzyW/E1RDmq89BRv1g2ch1xsKK5OpNjCCFP2OSYPybJmFXhjOWI7LUdFASmaw5Z1az9LLpLKQePQ4mWsL/ON8Z9uvzhQig3hdQ/cnrAsRLShn4rJratw==

答え3

known_hosts ファイルからホスト名と IP アドレスの両方をクリアする必要があります。次のように実行できます。

ssh-keygen -f ~/.ssh/known_hosts -R [somehostname.net]
ssh-keygen -f ~/.ssh/known_hosts -R [123.123.123.123]

somehostname.netクリアしたいホストのホスト名またはドメイン名に置き換え、IP アドレスをホストの IP アドレスに置き換えます (角括弧はそのままにします)。正常に実行された場合、次のようなメッセージが表示されます。

/home/yourname/.ssh/known_hosts updated.
Original contents retained as /home/yourname/.ssh/known_hosts.old

うまくいかなかった場合は、角括弧なしで同じことを試し、ホスト名と IP アドレスが正しいことも再確認してください。

ssh-keygen -f ~/.ssh/known_hosts -R somehostname.net
ssh-keygen -f ~/.ssh/known_hosts -R 123.123.123.123

ホストの SSH ポートが別のポート (たとえば 22 ではなく 2222) にある場合は、次のようにポートを追加するだけです。

ssh-keygen -f ~/.ssh/known_hosts -R [somehostname.net]:2222
ssh-keygen -f ~/.ssh/known_hosts -R [123.123.123.123]:2222

答え4

次のようなエラーが発生した場合:

Warning: the RSA host key for 'myVPS' differs from the key for the IP address 'xxx.xx.xxx.xx'
Offending key for IP in /home/manolo/.ssh/known_hosts:1
Matching host key in /home/manolo/.ssh/known_hosts:2
Are you sure you want to continue connecting (yes/no)?

known_hosts ファイルの 1 行目を削除するだけです。次に git コマンドを実行すると、新しい RSA ホスト hey が追加されます。

関連情報