
私は定期的にデュアルブートのOS X / LinuxコンピュータにSSHで接続しています。2つのOSインスタンスは同じホストキーを共有していないため、同じIPとDNSを共有する2つのホストとして見ることができます。IPが で192.168.0.9
、名前がhostname
と であるとします。hostname.domainname
私が理解している限りでは、2 つのホストに接続できるようにするには、両方のホストをファイルに追加することです。ただし、ファイルはハッシュ化されており、ホストごとに複数のエントリ ( 、、 )~/.ssh/know_hosts
があるため、言うほど簡単ではありません。その結果、次の警告が表示されます。192.168.0.9
hostname
hostname.domainname
Warning: the ECDSA host key for 'hostname' differs from the key for the IP address '192.168.0.9'
ハッシュを保持したままファイルを編集する簡単な方法はありますかknown_hosts
。たとえば、特定のホスト名に対応する行を見つけるにはどうすればよいでしょうか。既知のホストのハッシュを生成するにはどうすればよいでしょうか。
理想的な解決策は、このコンピュータにsshでシームレスに接続できるようにすることです192.168.0.9
。hostname
hostname.domainname
Linux ホストキーや OSX ホストキーを使用するかどうかに関係なく、このコンピューターに ssh でシームレスに接続できるようにすることです。ただし、実際の中間者攻撃があった場合は警告を受け取りたいので、つまりこれら 2 つのキー以外のキーが使用されている場合。
答え1
ここでの最も簡単な解決策は、Linux と OS X に同じホスト キーを使用することです。つまり、1 セットの/etc/ssh/ssh_host_*_key*
ファイルを選択して、それを他の OS にコピーします。すると、どの OS を起動したかに関係なく、同じホスト キーが SSH クライアントに提示され、SSH クライアントは何も認識しなくなります。
答え2
@Izzy が上記のコメントで示唆したように、ssh は問題のある行を通知し、その行を削除して (別の場所に保存)、新しいキーを受け入れ、削除した行をコピーして戻すと、同じホストに対して 2 つのキーが作成され、ssh はどちらでも受け入れます。
ssh-keygen -H -F <hostname>
( known_hosts ファイル内でそのホスト名に一致する行を見つけるためにも使用できます。削除した行をコピーしてからこれを実行すると、2 つのエントリがリストされます。)
もし誰かが PuTTY で同じことを実行する方法を知っているなら、ぜひ教えてください。
答え3
あなたが達成したいことに役立つかもしれないこれを見つけました。
次のように、.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
このフラグが「yes」に設定されている場合、ssh(1) は known_hosts ファイル内のホスト IP アドレスもチェックします。これにより、ssh は DNS スプーフィングによりホスト キーが変更されたかどうかを検出できます。オプションが「no」に設定されている場合、チェックは実行されません。デフォルトは「yes」です。
ホストキーエイリアス
ホスト キー データベース ファイルでホスト キーを検索または保存するときに、実際のホスト名の代わりに使用するエイリアスを指定します。このオプションは、SSH 接続をトンネリングする場合や、単一のホストで複数のサーバーを実行する場合に便利です。
ユーザー名とポートの行により、コマンド ラインでこれらのオプションを指定する必要がなくなるため、次のように使用できます。
% ssh server1 % ssh server2
答え4
同じ IP を共有するさまざまな VPS ボックスに接続するときは、それぞれ異なる SSH ポート (20022、30022 など) があり、異なるキーを持つ既知のホストとして登録されるため、この問題は発生しません。
それはあなたにとって回避策になるでしょうか?