web-dev-qa-db-ja.com

SSH:動的アドレスを持つ既知のホスト

動的IPアドレスでホストに接続する必要があります。

IPが変更されるたびに、SSHは指紋検証を要求します。

The authenticity of Host '...' can't be established.
RSA key fingerprint is ....
Are you sure you want to continue connecting (yes/no)?

SSHにホスト公開鍵を渡すことは可能でしょうか?

  1. SSHはホストの信頼性を自動的に検証します
  2. ホストキーはknown_hostsファイルに保存されません

この質問は 既知のホストに対するSSHのホスト検証を回避するにはどうすればよいですか? 他の質問はSSH検証を抑制することを目的としているのに対し、私はnotそれを抑制したい:私doは、ホストの公開鍵(私が知っている、それを持っている)を使用して、ホストを認証したいSSHではなくファイルに保存)known_hostsファイル。

私には、もう1つの質問は、動的IPを使用して単一の既知のサーバーに接続するのではなく、毎回異なるサーバーに接続することに関するもののようです。

12
peoro

私が見つけた最善の解決策(つまり、私が望むものに最も近い)は、オプションHostKeyAliasを使用することです。これは、(接続しているIPではなく)known_hostsにアクセスするために指定したホスト名を使用します。に)。

指定されたホスト名(例:myhost)を使用してホストの公開鍵をknown_hostsに追加し、次を使用して接続する必要があります。

ssh -o 'HostKeyAlias myhost' ...
8
peoro

known_hostsファイルはキーだけでなく、接続に使用するホスト名と、可能であれば対応するIPも含まれています。これがエラーが表示される理由です。サーバーから取得したトリプレットを、known_hostsファイルに保存したものと比較しています。

したがって、IPが変化し続ける場合は、CheckHostIPを無効にすることができます。これは、ホスト名とホストキーをチェックするだけであることを意味します。それらが変更されないままである場合、苦情は少なくなるはずですが、誰かがDNSを乗っ取ると危険にさらされます。

6
NickW