同じ (ただし変更されている) IP アドレス上の 2 つの異なるホストで SSH ホスト キーの検証を処理するにはどうすればよいですか?[閉まっている]
-
06-09-2019 - |
質問
nat ファイアウォールの内側に 2 台の SSH サーバーがあり、WAN IP が毎日変更される場所にあります。これらは、特定の時点では常に同じ wan IP アドレスにありますが、異なるポート上にあります。
私は次の方法でサーバー A に接続しています。
ssh -p 22001 karl@x1.example.com
そしてサーバー B へ:
ssh -p 22002 karl@x2.example.com
したがって、同じ IP に対して 2 つの異なるホスト キーを取得します。また、IP が変更された場合でも、同じホストの異なる IP を取得します。
known_hosts ファイル内の他のキーまたは古いキー (IP 変更の場合) を何度も削除しなければなりません。
安全性が低くなるため、キー検証をオフにすることをためらっています。しかし、常に警告が表示されるのも安全ではありません (私はそのような警告を常に無視しているため)。もっと良い解決策はありますか?
これは私の古い質問に関連していますが、同じではありません。
解決
これはうまくいくと思います:
を作成します config
あなたのファイルに .ssh
ディレクトリは次のようになります。
Host server1
Hostname x1.example.com
HostKeyAlias server1
CheckHostIP no
Port 22001
User karl
Host server2
Hostname x2.example.com
HostKeyAlias server2
CheckHostIP no
Port 22002
User karl
以下説明(より) man ssh_config
)
ホストIPの確認
このフラグが「はい」に設定されている場合、SSH(1)は既知の_hostsファイルのホストIPアドレスをさらに確認します。これにより、SSHはDNSスプーフィングのためにホストキーが変更されたかどうかを検出できます。オプションが「いいえ」に設定されている場合、チェックは実行されません。デフォルトは「はい」です。
ホストキーエイリアス
ホストキーデータベースファイルのホストキーを調べたり保存したりするときに、実際のホスト名の代わりに使用する必要があるエイリアスを指定します。このオプションは、SSH接続のトンネルや、単一のホストで実行されている複数のサーバーに役立ちます。
の Username
そして Port
line を使用すると、コマンドラインでこれらのオプションを指定する必要がなくなるので、次のようにするだけで済みます。
% ssh server1
% ssh server2