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


12

動的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検証を抑制することを目的としているため、私はそれを抑制したくありません。SSHではなく、ホストの公開鍵(私が知っていて、ファイルに格納されている)を使用してホストを認証たいのです。known_hostsファイル。

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

回答:


8

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

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

ssh -o 'HostKeyAlias myhost' ...

久しぶりですが、これがあなたの質問に最もよく答えるなら、受け入れてください。
kittykittybangbang 2015

他の人への注意:HostKeyAlias設定値を~/.ssh/configファイルまたはグローバル/etc/ssh/ssh_configファイルに追加できます。
kael

6

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

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


1
答えをありがとう、私はそれをできるだけ早くテストします!なぜとにかくそれはリストにあるのでしょうか?ホストのSSH公開鍵を知っている場合、それはいずれにしても完全に安全であるはずです(誰かがそのホストの秘密鍵を盗むことができない限り)、そうではありませんか?
peoro 2013年

それでも、正直に言うと、本当に嫌いです。そのフラグを使用すると、SSHは引き続きアクセスしますknown_hosts。どうして?「公開鍵がYであるXにssh接続する」と言えませんか?何故なの?それは100%確かではありませんか?
peoro 2013年

ホストキーはより大きな全体の一部であり、それだけでは、接続先のサーバーが以前に接続したサーバーであることを保証するのに十分ではないという考えです。IPとDNSエントリも一致していることを確認する必要があります。これはネットワークベースのシェルなので、ネットワークもチェックする必要があることに注意してください。
NickW 2013年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.