次のメッセージを防ぐことはできますか:(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
エントリを追加して、個々のキーではなく証明書を信頼すると、このメッセージが二度と表示されなくなります。
ホストキーが変更されたことを知っている場合、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を割り当てるホームルーター。
コメント
- これに対する完璧な答え!