IPを頻繁に変更するクラウドボックスがいくつかあります。
ホスト名を使用してsshを実行しますが、このエラーメッセージのためにサーバーが起動するたびにknown_hostsファイルを編集する必要があります。
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ 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…
セキュリティリスクなど、やりたいことに関連するものは別にして、このエラーを無視するか、known_hostsファイルを自動的に上書きして、常に自分で編集する必要がないようにする方法はありますか?
Ssh_configファイルを編集し、次の行を変更して追加します。
CheckHostIP no
CheckHostIPのデフォルトは「yes」です。これは、失敗している種類のチェックのみを実行することです。これをオフにすると、IPが可変であることが信頼され、ホスト名に対するキーチェックが行われます。
追加:that nameのCheckHostIPチェックを無効にすることのみを試みることができます:
Host *
[ global settings .. ]
Host very.dynamic.Host
CheckHostIP no
ここでの答えの多くは機能しますが、技術的には回避策です。 OpenSSHには、これを念頭に置いた組み込みの機能がすでにあります:HostKeyAlias
。
.ssh/configファイルで、HostKeyAlias <alias>
をホスト構成に追加します。
Host myserver.example.com
HostKeyAlias myserver.example.com
これにより、サーバーmyserver.example.com
への接続では、ホスト名またはを使用せず、ローカル参照にIPアドレスを使用します-常にonlyそのサーバーに接続するときに、指定されたHostKeyAliasを使用します。私にとっては、ホスト名を使用することは理にかなっています-もちろん、好きなエイリアスを使用することもできます。
動的ホストの私自身の典型的な設定は次のとおりです:
Host myserver
hostname myserver.dyn.example.com
HostKeyAlias myserver.private.example.com
これは、サーバーの多くが同じホストキーを持っていることがわかっているいくつかのあいまいなシナリオでも使用できます(通常、これはであるはずです。これにより、エントリの重複を防ぐことができます。今後、キーが正当に変更された場合、複数のエントリを置き換えたり削除したりする必要はありません。唯一。 Gitlab Geoサーバーはこの良い例です。
Known_hostsファイルのクリアに関しては、古くなったknown_hostsエントリの維持/削除に特に関連する他の質問/回答を確認することをお勧めします。たとえば、 私の.ssh/known_hostsファイルを管理する方法 を参照してください。私は特にuser1953828の回答に感銘を受けましたが、(まだ)賛成票は多くないようです。 :)
この問題を回避するには、これらの危険なオプションを使用します。 (私のホストの公開鍵は頻繁に再生成されるため、これによりIPと鍵のチェックが削除されます)
ssh remoteServerName -l username -o "UserKnownHostsFile=/dev/null"
キーは同じままでIPが変更されている場合も、これを使用できます。
ssh remoteServerName -l username -o "CheckHostIP=no"
StrictHostKeyChecking = noをssh client構成(つまり、接続元のマシンの〜/ ssh/configファイル)に設定して、警告を無視できます。
あなたはCheckHostIP no
を~/.ssh/config
ファイルですが、スプーフィング攻撃の可能性があります。それが気にならない場合は、この設定でknown_hosts
小切手。
一時的なAWSマシンに接続するときに、known_hosts
ファイルにフィンガープリントを追加しないようにします。私は次のようなコマンドを使用します
ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -i secret.pem [email protected]
それらに接続します。マシンを「既知のホストのリスト」に追加するかどうかは尋ねられません。 10.0.0.5
をマシンのIPアドレスに置き換え、secret.pem
をSshキーの完全パスに置き換えます。 10.0.0.5
が追加されたという警告が表示されますが、/dev/null
には完全に消えています。私は自分の~/.profile
にエイリアスを設定するのに十分な頻度でこれを行っています
alias awsssh='ssh -i secret.pem -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no'
フィンガープリントをチェックするというトラブルに遭遇した場合は、ssh [email protected]
タイプのコマンドをマシン用に予約します。