既知のホスト ファイル (または sudo) への書き込みアクセス権なしで SSH を実行しようとしたときに、既知のホストを削除/無視する方法

既知のホスト ファイル (または sudo) への書き込みアクセス権なしで SSH を実行しようとしたときに、既知のホストを削除/無視する方法

私は非 sudo ユーザーで、別のサーバーに ssh しようとしています。そうすると、known_hosts ファイルに従ってホストのホスト キーと IP アドレスが変更されたというエラーが表示されます (実際変更されています)。残念ながら、known_hosts ファイルを変更することはできず、オプションを使用すると-o StrictHostKeyChecking=noパスワード認証が無効になります。

答え1

known_hostsファイルを変更できません

コピーして変更できる場合は、sshコピーを使用するように指示します。関連するオプションは次ssh_configのとおりです。

GlobalKnownHostsFile
グローバル ホスト キー データベースに使用する 1 つ以上のファイルを空白で区切って指定します。デフォルトは/etc/ssh/ssh_known_hosts,です/etc/ssh/ssh_known_hosts2

UserKnownHostsFile
ユーザー ホスト キー データベースに使用する 1 つ以上のファイルを空白で区切って指定します。デフォルトは~/.ssh/known_hosts,です~/.ssh/known_hosts2

ソース

ちょっと待って!あなたが言った

この-o StrictHostKeyChecking=noオプションを使用すると、パスワード認証が無効になります。

パスワード認証を無効にするのはオプションではないと思います。新しいサーバーがそれを許可しないのです。つまり、この特定のサーバーに実際に接続できるアプローチは、パスワード認証では機能しません。古いknown_hostsファイルを回避したり修正したりしても問題ありません。サーバー自体はパスワードを許可しないように構成されています。

もしそれがサーバーの場合は、サーバー管理者にパスワードを許可するよう依頼してください (または、他の認証方法を提供する場合もあります)。ローカル管理者にファイルの更新を依頼してくださいknown_hosts

関連情報