ローカルアドレスに対するSSH認証テストの防止

ローカルアドレスに対するSSH認証テストの防止

同じLAN上の複数のサーバーがsshDHCPを使用している場合は、そのサーバーのIPアドレスが変更されることがあります。新しいアドレス(たとえば、以前にそのLANにあったことがないアドレス)があるたびに、次のメッセージが表示されます。

The authenticity of host '192.168.1.x (192.168.1.x)' can't be established.
ECDSA key fingerprint is xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx.
Are you sure you want to continue connecting (yes/no)?

と言えば、yesその指紋は永久的なこのアドレスに関連付けられています。ただし、他のsshサーバーが192.168.1.xの場合は、他の指紋があり、強力な警告が表示されます。

サーバーとクライアントの両方が最新のアップデートを含むUbuntu 14.04を実行しています。サーバーに物理的にアクセスでき、アドレスが変更されてもサーバーの信頼性がわかるため、サーバーを信頼します。

1)同じサーバーが定期的にキーフィンガープリントを変更することは可能ですか?

2)指紋検査を抑制する方法はありますか?ただローカルアドレスの場合、範囲は192.168.1.1-254?

答え1

~/.ssh/config:

host 192.168.1.*
    CheckHostIP no
    StrictHostKeyChecking no

答え2

1)同じサーバーが定期的にキーフィンガープリントを変更することは可能ですか?

はい、理論的には、サーバー管理者はいつでもサーバーキーを変更できます。しかし、これはすでに確立された信頼を損なう可能性があり、実務上正当な理由なしに行われるべきではありません。

サーバーを再構築する場合(sshサーバーキーを保持しない新しいハードウェアまたは軌道で核兵器シナリオを使用している場合)、これが発生する可能性があります。これは、同じホスト名を使用する異なるキーを持つ複数のサーバーがある場合にも発生します(ロードバランサーの背後にあるなど)。

また、SSHサーバーにはさまざまな種類のホストキー(rsa、dsa、ecdsa、ed25519 ...)があることが多いため、ネゴシエートされた鍵交換によって、あるクライアントを他のクライアントと比較したときのキーフィンガープリントが異なる場合があります。ただし、クライアントまたはサーバー構成の両方が変更されない場合、指定されたクライアントは常にサーバーから同じキーを取得する必要があります。

2)ローカルアドレス(192.168.1.1-254の範囲)に対してのみ指紋チェックを抑制する方法はありますか?

はい。 ~からssh_config マニュアルページ、オプション、およびCheckHostIPこのStrictHostKeyChecking動作に影響します。 「192.168.1」で始まり、後に1〜3文字が続くすべてのホスト名に対するこれらのチェックを抑制するには、次のようにします。

Host 192.168.1.?,192.168.1.??,192.168.1.???
    CheckHostIP no
    StrictHostKeyChecking no

ご注意ください、模様節ではHost完全正規表現やシェルグローブはサポートされていませんが、文字列一致単一の文字?と貪欲な*ワイルドカードのみが含まれています。したがって、誰かが正常に登録すると、1.comパターンはリモートサーバーとも一致します192.168.1.com

貪欲なglobを使用すると、構成句がより単純になりますが、Host 192.168.1.*より広い範囲の混合英数字名を一致させることもできます192.168.1.evil.qwerty.org可能性誤って(ホストキーを確認せずに)そのサーバーに接続する可能性は非常に低いです。しかし、これは単なる文字列globであり、必ずしもサブネットアドレスで確認されるわけではないことに注意する価値があります。一種のサブネットアドレスと同じです。

関連情報