在里面服务器存在于/etc/ssh/
目录文件中,例如:
ssh_hosts_rsa_key.pub
ssh_hosts_ecdsa_key.pub
ssh_hosts_ed25519_key.pub
它们包含符合密钥类型的公钥,例如rsa
等ecdsa
如果在客户执行以下命令:
# Retrieve and Show all the public keys content
ssh-keyscan 192.168.1.X
# Retrieve all the public keys content and Show the fingerprint of them
ssh-keyscan 192.168.1.X | ssh-keygen -lf -
输出分别是public keys
和fingerprint
观察
- 通过命令显示的数据
ssh-keyscan
来自/etc/ssh
服务器中目录中的可用文件
忧虑
- 我在网上读到,服务器可以被假冒的服务器替换,或者客户端/服务器之间的通信可以被拦截,从而受到损害
因此,即使执行以下命令:
ssh-keyscan [-H] 192.168.1.X >> ~/home/<username>/public_keys
哪里public_keys
有一个自定义文件,用于保存从服务器接收的数据并在以后进行验证/分析。所以 ...
问题
- 如何确认公钥通过命令询问和收到的信息
ssh-keygen
真的是真实的吗?
目的是避免执行
ssh-keyscan [-H] 192.168.1.X >> ~/.ssh/known_hosts
并在文件中添加受污染的数据~/.ssh/known_hosts
,最后将关键数据发送到虚假目的地,从公钥客户本身。
我认为服务器中的管理员会向客户端共享这些.pub
文件,它通过
- 通过电子邮件
- 通过 ftp 访问
因此客户可以:
- 使用上述
public_keys
文件与文件内容进行简单比较.pub
。应该相等 - 使用
ssh-keygen
带有选项的命令直接-lvf
生成文件并与命令进行快速比较。也应该相等fingerprint
.pub
ssh-keyscan 192.168.1.X | ssh-keygen -lf -
乍一看,这将是最明显的方法,也许对于“小型”LAN/WAN 来说是有意义的,但假设管理员由于任何政策而不想共享这些文件......如何回答我的问题? - 当然,另一个最糟糕的情况是管理员的电子邮件/FTP 也受到损害。