REMOTE HOSTIDENTIFICATIONに関するメッセージが変更されたのを防ぐ方法

次のメッセージを防ぐことはできますか:(REMOTE HOST IDENTIFICATION HAS CHANGED)

この接続構文のみを使用する場合

 ssh xxx.xxx.xxx.xxx 

警告メッセージの例:

 ssh 10.19.11.1 CentOS release 5.8 (Final) Kernel 2.6.18-308.el5 on an i686 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ 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 dd:6f:32:8f:8f:8c:70:9c:95:f1:48:83:60:97:cc:ed. Please contact your system administrator. Add correct host key in /root/.ssh/known_hosts to get rid of this message. Offending key in /root/.ssh/known_hosts:7 RSA host key for 10.19.11.1 has changed and you have requested strict checkin. Host key verification failed. 

これらのメッセージを受け取るたびに、/ root / .ssh / known_hostsをクリーンアップします

as

 cp /dev/null /root/.ssh/known_hosts 

私もcrontabにコマンドcp / dev / null /root/.ssh/known_hostsを設定することを考えているので、

毎日24:00にknown_hostsファイルをクリーンアップします(このソリューションはこの問題を軽減しますが、解決しませんでした)

したがって、このソリューションはあまり良いソリューションではありません。なぜなら、known_hostsファイルを毎日クリーンアップしてもユーザーが警告メッセージを受け取る可能性があるからです

/ etc / sshで何かできるかもしれません/ ssh_configファイルを使用してSSHホストキーのチェックを防止しますか?

備考:

次の方法を使用してprを実行したくないSSHホストキーチェックのイベント(リフレクション/パテを使用しているため)

ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no [email protected] 

この構文のみを

 ssh xxx.xxx.xxx.xxx 

接続用

コメント

  • 簡単に言うと、don ' tそれをします。 実際にその警告を読んだことがありますか?この警告には理由があります。そして、それはMitM攻撃やその他の悪いことの害からあなたを守ることです。

答え

更新:現在、TLSと同様に SSH証明書を使用できます証明書。次に、known_hostsエントリを追加して、個々のキーではなく証明書を信頼すると、このメッセージが二度と表示されなくなります。


@ 0xC0000022Lの警告に注意

ホストキーが変更されたことを知っている場合、known_hostsファイルからその特定のエントリを削除できます。

ssh-keygen -R xxx.xxx.xxx.xxx 

これは、完全に上書きするよりもはるかに優れていますホストファイル(> /root/.ssh/known_hostsだけで実行できます)。

sshを使用したくない場合コマンドラインオプション、これを行う他の唯一の方法は、SSHコードを変更して再コンパイルすることだと思います。本当にやりたくない!

コメント

  • しかし、これを自動的に行いたいのですが、ユーザーがこれについて不満を言ったときは、しません。手動で実行したくない
  • 手動で実行したくない'手動で実行したくない(削除g known_hostsエントリ)、自動的に実行したくない'(sshオプション)。それでは、どのように実行しますか?
  • @ l0b0コマンドラインオプションを指定して機能を抑制します。仮想マシン環境やその他の非常に動的な構成(特にテスト環境)などの一部の環境では、これらのホストキーは頻繁に変更され、分離されたネットワーク上にあるため、チェックを実行しても得られるセキュリティはほとんどありません。毎回ssh-keygen -Rを実行しなければならないのは面倒です。 sshのシェルを作成できると思います。これは、宛先アドレスを解析し、オプションをsshに渡す前にキーを事前に削除するシェルスクリプトですが、これはやり過ぎのようです。

回答

ステップ1:障害のあるキーを削除

 ssh-keygen -R 192.168.1.1 

ステップ2:新しいキーを追加

 ssh-keyscan 192.168.1.1 >> ~/.ssh/known_hosts 

または状況に応じて

 > ~/.ssh/known_hosts ssh-keyscan 192.168.1.1 192.168.1.2 ... >> ~/.ssh/known_hosts 

コメント

  • -1警告なしでフットガンを提供します。
  • @ l0b0あなたの名誉は十分に公平です!

回答

使い捨ての仮想マシンなどに接続するときは、最初からキーを保存しない方がよいでしょう。

ssh0次の内容のエイリアスまたは関数:

alias ssh0="ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -o LogLevel=ERROR" 

このようにして、~/.known_hostsファイルにガベージがあり、別のコマンドを使用しているため、心理的な問題が発生します「実際の」sshとローカルウィジェットのインストルメントに使用されるsshとの境界。

もう1つの便利なエイリアスは

alias sshy="ssh -o CheckHostIP=no" 

「IPを頻繁に変更するデバイスに接続している。 ISPが電源を入れ直すたびに異なるIPを割り当てるホームルーター。

コメント

  • これに対する完璧な答え!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です