known_hosts からキーを削除する

known_hosts からキーを削除する

過去数週間にいくつかの仮想マシンを構築しました。問題は.ssh/known_hosts真ん中の男警告。これは、仮想マシンの IP に別のフィンガープリントが関連付けられているために発生します。

しかし、ファイル内には.ssh/known_hostsIP に関連するレコードは見つからず、2 つの奇妙なキーのような文字列と「ssh-rsa」だけがあります。

から古いキーを削除する方法について何かアイデアをお持ちの方はいらっしゃいますかknown_hosts?

答え1

sed -i '6d' ~/.ssh/known_hosts

ファイル ~/.ssh/known_hosts:6 を変更し、6 行目を削除します。

私の意見では、ssh-keygen -Ropenssh パワー ユーザーにとっては を使用する方がよいソリューションですが、通常の Linux 管理者は上記の方法を使用して sed スキルを最新の状態に維持する方がよいでしょう。

答え2

これにはssh-keygen スイッチ ( -R) があります。

man ssh-keygen読みます:

-R ホスト名

hostnameファイルに属するすべてのキーを削除しますknown_hosts。このオプションは、ハッシュされたホストを削除する場合に便利です (-H上記のオプションを参照)。

答え3

最も簡単な解決策は次のとおりです。

rm -f .ssh/known_hosts

ssh はファイルを再作成しますが、他のホストのキーチェックは失われます。

または、以下を使用することもできます。

ssh-keygen -R "hostname"

または、ssh の「中間者」メッセージには、known_hosts ファイルのどの行に問題のあるフィンガープリントがあるかが示されるはずです。ファイルを編集し、その行にジャンプして削除します。

答え4

すべての回答は適切ですが、実際の SSH プロの場合、(非標準の) ポート番号を使用して SSH 署名を削除する方法がわかりません。

  • シンプルな SSH ホスト署名削除コマンド:

      ssh-keygen -R example.com
    
  • 複雑な SSH キーの削除 (例: 非標準ポート 222 で SSH に接続する場合)

      ssh example.com -p 222
    

警告が表示され、これを削除するには、角括弧コロンポート番号:

    ssh-keygen -R [example.com]:222

おそらく同じホストの IP レコードが存在するため、そのレコードも削除する必要があることに注意してください。

これが非標準構成のユーザーに役立つことを願っています。

関連情報