web-dev-qa-db-ja.com

コマンドラインから新しいホストフィンガープリントを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

エラーメッセージ。ただし、コマンドを実行するシステム(Appworx)(sftp、それは問題ではないと思います)は自動化されており、サードパーティベンダーに有効な変更であることを確認した後でも、新しいキーを簡単に受け入れることはできません。同じシステム(およびユーザー)から実行できる新しいシェルスクリプトを追加できますが、キーを受け入れるようにsshに指示するコマンドまたはコマンドライン引数がないようです。 manページまたはGoogleで何も見つかりません。確かにこれは可能ですか?

24
John O

ここでの答えはひどいアドバイスです。実際のシステムではStrictHostKeyCheckingをオフにしないでください(たとえば、自分のローカルホームネットワークでプレイしているだけでも大丈夫かもしれませんが、他のことはしないでください)。

代わりに使用します:

ssh-keygen -R hostname

強制的にknown_hostsファイルを更新して、そのキーを更新した1つのサーバーのみの古いキーを削除します。

次に使用する場合:

ssh user@hostname

指紋を確認するように求められます-他の「新しい」(つまり、これまで見えなかった)サーバーの場合と同様です。

19
AJ Poulter

Ssh-ingを実行しているホストでbashスクリプトを実行してこれを自動化しようとしているため、次のことを想定しています。

  • ホストキーを無視したくないのは、追加のセキュリティリスクがあるためです。
  • まれに変更するホストのホストキー。変更した場合は、「ターゲットホストが再構築された」などのよく知られた理由がある
  • このスクリプトを1回実行して新しいキーをknown_hostsに追加し、known_hostsをそのままにしておきます。

Bashスクリプトでこれを試してください:

# Remove old key
ssh-keygen -R $target_Host

# Add the new key
ssh-keyscan $target_Host >> ~/.ssh/known_hosts
4
Earl Ruby

次のファイルを追加

~/.ssh/config

そしてこれはコンテンツとしてファイルに

StrictHostKeyChecking no

この設定により、sshが再度指紋チェックを要求しないようになります。