ssh-keyscanコマンドの-Hはどのように機能しますか?

ssh-keyscanコマンドの-Hはどのように機能しますか?

ssh-keyscanこの-Hオプションのコマンドは次のとおりです。

これは見せる

 -H      Hash all hostnames and addresses in the output.  Hashed names may be used normally
         by ssh and sshd, but they do not reveal identifying information should the file's
         contents be disclosed.

私はそのアイデアや目的を理解していません。これがこの記事の理由です。その目的を説明してもらえますか?

私は2つの異なるホストに対してifが実行されることに気づきました。

# Pair I
ssh-keyscan 192.168.1.x
ssh-keyscan 192.168.1.y

# Pair II
ssh-keyscan -H 192.168.1.x
ssh-keyscan -H 192.168.1.y

これ最初ペア:各IPの各公開鍵の出力は、とマークされている鍵のdsa, ecdsa, ed25519種類とともに表示されますrsa

これ第二ペア:各IPの各公開鍵の出力を表示し、鍵の種類をおよびとして表示します。dsa, ecdsa, ed25519-rsaただし、各キーの先頭には、|1|任意のテキストと一緒にテキストを入力します。

質問:

  • コマンドでどのように-H機能しますかssh-keyscan

その他の質問

  • いつ必須ですか-H
  • 何ですか|1| 任意のテキストで意味は?

覚えている、|1| 任意のテキストで各キータイプに対して、1つずつ2つの異なるホストの出力に表示されます。だから偶然ではないと思います。

ノート

セキュリティ上の理由から出力を共有しません。

答え1

一方向ハッシュは、攻撃者がファイルを取得した場合にknown_hostsSSHを介してアクセスされているホストを知りにくくする手段として宣伝されます。内容は次のとおりですssh_config(5)

 HashKnownHosts
         Indicates that ssh(1) should hash host names and addresses when
         they are added to ~/.ssh/known_hosts.  These hashed names may be
         used normally by ssh(1) and sshd(8), but they do not visually re-
         veal identifying information if the file's contents are dis-
         closed.  The default is no.

攻撃者が他のターゲットホストを見つけたり、政治的に不適切なシステムに接続したことを誰かが知ることがより困難になる可能性があるため、「良いあいまいさ」を目指していますが、これはあいまいさによるセキュリティです。この情報を見つけるための別の方法(ファイアウォールログ、ネットワークトラフィック履歴、DNSなど)がありますが、読みやすいハッシュフリーのテキストファイルは攻撃者にとって非常に便利ですが、他の方法は利用できないか、時間がかかることがあります。 。

(より良い「ディープディフェンス」のためにディスクを暗号化する必要があるかもしれませんが、アプリケーションの脆弱性によってマウントされたファイルシステムへの直接アクセスが許可されているか、画面がロック解除されていることがわかった場合は役立ちません。)

関連情報