我阅读了以下教程
我确认ssh-keyscan 192.168.1.X
扫描并打印服务器/主机的所有 公钥值 - 该输出来自服务器/主机的以下文件
/etc/ssh/ssh_host_ecdsa_key.pub
/etc/ssh/ssh_host_ed25519_key.pub
/etc/ssh/ssh_host_rsa_key.pub
Run Code Online (Sandbox Code Playgroud)
我可以通过以下选项过滤它们:-t
ssh-keyscan -t key_type 192.168.1.X
哪里key_type
可以rsa
,ecdsa
和ed25519
甚至混合,例如:rsa,ecdsa
例如:
ssh-keyscan -t rsa 192.168.1.X
到目前为止,我理解了该命令的所有这两种变体。我在我的电脑上确认了该行为
现在,在对这个命令进行研究之后,这篇文章的原因是:
两者都提到了该/etc/ssh/ssh_known_hosts
文件,存在
如果在未验证密钥的情况
ssh_known_hosts
下构建文件ssh-keyscan
,用户将容易受到中间人攻击。另一方面,如果安全模型允许这种风险,则 可以帮助检测在文件创建ssh-keyscan
后开始的被篡改的密钥文件或中间人攻击ssh_known_hosts
不清楚是否自动ssh_known_hosts
创建/构造或使用某些选项,例如-c
- 我知道该选项不存在。
那么该文件在客户端中不存在 - 我假设在命令执行之后应该自动生成或创建该文件 - 该路径和文件名出于某种明确的原因而存在,对吗?- 类似于使用命令并被客户端接受服务器指纹.ssh/known_hosts
时创建/更新文件的方式ssh username@hostname