
ssh
クライアントでは、ファイルは.ssh/knwon_hosts
プレーンテキストを使用する場合があります (これは、たとえば FreeBSD 12.0 で発生します)。
<ip_address> ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBEIlD8R6Kxj9CdToar+3ay4B0yE65dP0EYoRJjEEgLjmvCTIv59DBp+0j2z0+NM0hxxJew79i1bYuN02lEvT2/E=
またはハッシュ化される場合もあります (Ubuntu 18.04 の場合)。
|1|3Et6QShrP2OrD4tWdOGP3jy3YC4=|f2FrJ5tOjjmFSrGWyen1DokJyLc= ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBIyZLGNvIADWL5SSkohBmDCVpLUzAHNejqQAXP3SSY300YIdNKCn3jqGmFAJiKB1CY0HnVirgFjdAKpyw3+6yzo=
質問1
ハッシュからプレーンテキスト行を取得することは可能ですかknown_hosts
?
ウブントゥsshd マニュアルページ次のように述べています。
ハッシュ化されたホスト名は 1 行に 1 つだけ表示でき、上記の否定演算子やワイルドカード演算子は適用できません。
ここで何を意味しているのかよく分かりません。
質問2
つまり、 のようなアドレスは、プレーンテキストとして作成され、その後手動でハッシュ化された場合でも、192.168.*.*
のハッシュ形式では決して受け入れられないということですか?known_hosts
例えば、前の質問、私は以下のクライアントを使用しています:OpenSSH_7.8p1, OpenSSL 1.1.1a-freebsd 20 Nov 2018
およびOpenSSH_7.6p1 Ubuntu-4ubuntu0.3, OpenSSL 1.0.2n 7 Dec 2017
。
答え1
いいえ、そしてはい、その順番です。行をハッシュする目的は、以前接続したホストを隠蔽することであり、したがって、(実際上) どのホスト名がそれに属するかを判別できないようにすることがハッシュ関数の目的そのものです。
拡張により、ハッシュ化されたホスト名ではワイルドカードを実際に機能させることはできません。 に接続する場合webhost47
、行がハッシュ化されていると、 に一致する行があることをどうやって見つけるのでしょうかwebhost*
。ハッシュは落とし穴であり、ハッシュ化して確認することによってのみその行を見つけることができます。ただし、 、、などwebhost*
も確認する必要があるため、これはあまり合理的ではありません。?ebhost47
w?bhost47
??bhost47
(このコメントは、
hashblurb1,hashblurb2 ssh-rsa …
ハッシュ化されたホスト名では、
hostname1,hostname2 ssh-rsa …
そして、今のところ、なぜそれができないのか技術的な理由はわかりません。