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.

我既不明白这个想法,也不明白它的目的。这就是这篇文章的原因。请问你能解释一下它的用途吗?

我确实意识到对于两个不同的主机, 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, ed25519rsa

第二对:对于每个 IP,显示每个公钥的输出,并将密钥类型指示为dsa, ecdsa, ed25519rsa- 然而,在每个密钥的开头,键入|1|带有一些随机文本的文本

问题:

  • 在命令中如何-H工作ssh-keyscan

额外问题

  • 什么时候强制使用-H
  • 什么是|1| 带有一些随机文本意思是?

记住,|1| 带有一些随机文本出现在两个不同主机的输出中,它针对每种密钥类型。所以我假设这不是巧合

笔记

我不会仅仅出于安全原因共享输出

答案1

单向散列被宣传为一种手段,如果攻击者获得您的known_hosts文件,攻击者就更难知道您通过 SSH 访问的主机。内容如下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 等),但易于读取的未哈希文本文件对于攻击者来说非常有用,而其他方法可能不可用或可能需要很长时间。

(您可能还应该加密磁盘以获得更好的“纵深防御”,尽管如果应用程序漏洞允许直接访问已安装的文件系统,或者如果他们发现您的屏幕未锁定等,这将无济于事)

相关内容