我理解使用密钥正确登录的先决条件之一是需要将服务器的密钥添加到客户端的密钥中。~/.ssh/known_hosts
还有一个名为的实用程序,它返回特定主机的密钥。如果客户端在特定主机中使用了ssh-keyscan
这些密钥,则可以将这些密钥添加到客户端的~/.ssh/known_hosts
事件中,这样客户端就可以连接到服务器,例如:StrictHostKeyChecking yes
~/.ssh/config
Host 192.168.1.100
StrictHostKeyChecking yes
user wakatana
我的问题是,以下命令返回哪些密钥?它们从哪里读取?它们存储在服务器上吗?在哪里?
ssh-keyscan -H 192.168.1.100 >> ~/.ssh/known_hosts
我已将所有*.pub
键/etc/ssh
与的输出进行了比较ssh-keyscan
,但没有一个匹配。
PS:这有助于我更好地理解 SSH
答案1
ssh-keyscan
返回密钥的指纹,而不是实际的公钥。当您进行 SSH 会话时,会涉及两个不同的密钥对(每对都有一个指纹)。- SSH 服务器用于在您登录时识别自身的密钥位于 中
/etc/ssh/
,通常命名为。您实际上可以使用设置ssh_host_rsa_key
更改 SSH 服务器在文件中查找密钥的位置。/etc/ssh/sshd_config
HostKey /path/to/host/key