关于选项的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.
我不明白这个想法和它的目的。这就是这个帖子的原因。请你能澄清它的用途吗?
我确实意识到对于两个不同的主机,如果执行
# 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|
with some random text是什么意思?
请记住,对于两个不同的主机,输出中会出现|1|
一些随机文本,它针对每种密钥类型。所以我假设这不是巧合
笔记
出于安全原因,我不会共享输出
单向散列被宣传为一种使攻击者更难知道您通过 SSH 连接到哪些主机的方法,如果说攻击者掌握了您的
known_hosts
文件。这里是ssh_config(5)
说:这是通过默默无闻的安全,尽管倾向于“良好的默默无闻”,因为它可能使攻击者更难找到其他目标主机,或者让某人知道你一直在连接到一个政治上不恰当的系统。还有其他方法可以找到此信息(防火墙日志、网络流记录、DNS 等),但易于阅读的未散列文本文件对攻击者来说非常有用,而其他方法可能不可用或可能需要很长时间。
(您可能还应该加密磁盘以获得更好的“深度防御”,尽管如果应用程序漏洞允许直接访问已安装的文件系统,或者如果他们发现您的屏幕未锁定等,这将无济于事。)