同じ (ただし変更されている) IP アドレス上の 2 つの異なるホストで SSH ホスト キーの検証を処理するにはどうすればよいですか?[閉まっている]

StackOverflow https://stackoverflow.com/questions/733753

質問

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 変更の場合) を何度も削除しなければなりません。

安全性が低くなるため、キー検証をオフにすることをためらっています。しかし、常に警告が表示されるのも安全ではありません (私はそのような警告を常に無視しているため)。もっと良い解決策はありますか?

これは私の古い質問に関連していますが、同じではありません。

2 つの DNS 名を持つサーバーでの SSH ログイン警告メッセージ

役に立ちましたか?

解決

これはうまくいくと思います:

を作成します 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
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top