キーとIPが一致する場合の代わりにキーに基づいてSSHサーバーを信頼する


8

sshクライアントがsshサーバーの背後にあるIPを気にせず(および別のサーバーが以前にそのIPの背後にあった場合)、特定のサーバーキーを信頼するようにすることは可能ですか?(およびそれらのキーにニックネームを付ける場合がありますか?)動的DNSを使用していて、一部のコンピューターでIPv6プライバシー拡張を有効にしていて、接続しても安全であるかどうかを常に尋ねられます。DHCPによって割り当てられたアドレスが別のsshサーバーに割り当てられ、あらゆる種類の「キーがIPと一致しない」エラーが発生する可能性もあります。


また、SSL経由で提供されるWebページに各sshサーバーの公開鍵のリストがあるため、特定のサーバーの鍵セットを実際に信頼しているかどうかを簡単に確認できることにも触れたでしょう。
Azendale

回答:


7

でサーバーのニックネームを追加~/.ssh/configCheckHostIP、このサーバーに対してオフにします。

Host nickname
HostName example.dyndns.org
CheckHostIP no

初めてサーバーに接続する前に、公開鍵をアウトオブバンドでコピー/etc/ssh/ssh_host_rsa_key.pubします。サーバーから取得しroot@hostname、行の最後の部分を削除example.dyndns.orgして、最初に追加し、行をに追加します~/.ssh/known_hosts。必要に応じて実行ssh-keygen -Hして、ホスト名をハッシュします(これは、誰かがハードディスクやバックアップを盗んだ場合にそのエントリのプライバシーが心配な場合にのみ役立ちます。99.99%の人にとって、情報は他の近くに存在するため役に立たないとにかく場所)。


Host nickname、それは私がそうすることができるという意味ssh nicknameですか?もしそうなら、それはかなりきちんとしています。
Azendale

@Azendale:まさに、これはホスト名とオプションのセット(ユーザー名、ブールオプション、トンネルなど)にニックネームを付けるための一般的な機能です。
Gilles「SO-邪悪なことをやめなさい」

2

/etc/ssh/ssh_config行を追加します。

CheckHostIP no

ただし、接続するIPまたはDynDNS名の背後にどのマシンも隠れてしまう可能性があるため、これによりSSH のSecureが少し取り除かれます。


1
これはセキュリティをまったく奪いません。ホストキーを保存する目的は、他のコンピュータを識別することです。ホストキーがある場合、名前とIPアドレスはセキュリティには関係ありません。偽のメッセージを削除すると、実際にはセキュリティが向上します(偽のメッセージは注意を消費しますが、これは希少なリソースです)。
Gilles「SO-邪悪なことをやめなさい」

1
@ギレス:マンページは同意しません。はい、よく知られているIPとホストの関係がない接続のセキュリティを失うことはありません。他の場合は、DNSスプーフィング攻撃に対する保護をあきらめます(マンページに記載されています)。
htorque

manページのどの節を参照しているのかわかりません。それがの説明であればCheckHostIP、いいえ、保護をあきらめるとは言いません。を使用CheckHostIP noしても、スプーファーはサーバーの秘密鍵を取得する必要があります。それが可能であれば、IPアドレスを偽装することはできません。
Gilles「SO-邪悪なことをやめなさい」

キーを信頼していることがわかっている場合、DNSスプーフィングがどのように危険であるかについて、例を挙げていただけますか?ログインに公開キー認証を使用しているため、悪意のあるサーバーはパスワードを取得できませんが、パスワードを使用するとどうなりますか?
Azendale

公開鍵認証を使用してもパスワードは実際には保護されません。サーバーがMITMを実行して、ユーザーsudoまたは類似のユーザーがパスワードを取得する可能性があります。
レムラム2015年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.