「リモートホストIDが変更されました」という警告をsshに強制的に出力させない


23

このようなssh印刷警告メッセージを回避する方法はありますか?

"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\r",
"@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @\r",
"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\r",

リモートホストのIDは変更されましたが、問題ないことを知っており、この警告を取り除きたいだけです。

回答:


16

4つの方法:

質問に答えずに、新しいホストキーを使用してシステムに一度だけ接続するには、次のオプションで接続します。

ssh -q -o "StrictHostKeyChecking no" this.one.host.name

すべてのシステムの警告を永久に削除するには、~/.ssh/configファイルを編集して次の行を追加します。

Host *
StrictHostKeyChecking no

この1つのサーバーのすべての警告を完全に削除するには、~/.ssh/configファイルを編集して次の行を追加します。

Host this.one.hostname
StrictHostKeyChecking no  

この1つのサーバーのこの1つの変更に関する警告を削除するには、そのサーバーのホストキーをから削除します~/.ssh/known_hosts。次回接続するときに、新しいホストキーが追加されます。


2番目のオプションでは、接続先のサーバー側で構成を行う必要がありますか?
coffeMug ​​14年

いいえ、$HOME/.ssh/config2番目と3番目のオプションの両方で重要なのはあなた自身です。
ジェニーD 14年

これはまだ警告を表示します(接続は許可しますが)。
マイケルミオール

24

これを〜/ .ssh / configに追加します。

Host 10.*                            # use your own pattern here, eg. *.example.com, example.*.com
  StrictHostKeyChecking   no         # turn off the HostKey check                                                               
  LogLevel                ERROR      # keep it from printing to STDOUT
  UserKnownHostsFile      /dev/null  # (optional) add the host automatically to a black hole, otherwise it would be added to ~/.ssh/known_hosts and show you a warning/message at the top of your session. You may want it added to known_hosts if your shell uses `ssh` autocompletion, such as fish. 

3
MOD UP-質問に実際に答えたのは1人だけです。これが機能するだけでなく、警告を抑制する唯一の答えでした。
ブラッド

おっと、フィッシュシェルのユーザーは、UserKnownHostFileを/ dev / nullに設定すると、以前に接続したホストに対して素敵なsshオートコンプリートを使用できないようです。魚のユーザーとおそらく誰もがそれを設定しないでください。
イライジャリン

あなたはよくするssh0ためにスクリプト/エイリアス/機能をssh -o UserKnowHostsFile=/dev/null -o LogLevel=ERROR明示代わりにこれらのオプションをダンプすることと使用~/.ssh/config。あなたはそれらを忘れて、それからあなたがちょうどそれらを働かせたかったのになぜチェックがうまくいかなかったのか疑問に思うかもしれません。
ビリーおじさん

20

そのホストの行を外すことができます~/.ssh/known_host(すべてのホストにエントリとして行があります)。

代わりに使用する方法は次のとおりです。

ssh -q -o "StrictHostKeyChecking no" ....

使用-qするだけでssh静かに失敗します。


9

デフォルトの$ HOME / .ssh / known_hostsにホストキーを追加しないことが望ましい場合があります。

-o UserKnownHostsFile=/dev/nullに加えて-q-o StrictHostKeyChecking=noを使用して、known_hostsを整理してください。以下に例を示します。

ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -q user@scripts.local

2

別の提案は、ホストキーが変更されている理由を特定し、それを停止させることです。

例として、コンテナ内またはプロビジョニングシステムを介してホストを構築する場合、これらがインスタンスごとに同じ既知のホストキーを一貫して使用することを確認します。

これは常に可能であるとは限らず、ホストは制御範囲外で管理される可能性があることは十分承知していますが、これらのホストキー警告は理由があり重要です。例外カウントを減らすことは良いことです。

そうでない場合は、問題の特定のホストについてのみ、StrictHostKeyChecking Noに投票します~/.ssh/config

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.