Answers:
进行SSH会话时,涉及两个不同的密钥对(每对都有一个指纹)。一个是存储在中的用户密钥~/.ssh
。用户的SSH密钥身份有时会用作登录到另一台计算机的凭据(如果您已设置基于密钥的登录名)。
另一个是SSH服务器的密钥。这是您首次连接到其他服务器时看到指纹的密钥。该密钥的身份用于确保您登录到想要的SSH服务器。如果您使用密码,这很重要,因为您不想意外地尝试登录到攻击者的计算机:攻击者在输入密码时会得到您的密码。然后,攻击者可以登录到您认为已登录的计算机。至!(这被称为“中间人攻击”)SSH服务器在登录时用于标识自身的密钥位于/etc/ssh/
,通常命名为ssh_host_rsa_key
。
您实际上可以使用设置更改SSH服务器在文件中查找密钥的位置。/etc/ssh/sshd_config
HostKey /path/to/host/key
默认情况下,ssh-keygen
将为当前用户创建一个密钥,默认情况下,该密钥将存储在中~/.ssh
。用户密钥和服务器密钥的格式相同;不同之处在于它们的放置位置以及是否/etc/ssh/sshd_config
有HostKey
指向它们的指令。安装openssh-server软件包时,它将自动生成供服务器使用的密钥。这就是带有未知指纹的密钥的来源。如果要查看SSH服务器(RSA *)密钥的指纹,则可以运行ssh-keygen -lf /etc/ssh/ssh_host_rsa_key.pub
。
*有不同的加密算法。每个人使用不同的密钥。常见的是DSA(弱),RSA(旧的默认值)和ECDSA(新的默认值)。
ssh-keygen -lf /etc/ssh/ssh_host_rsa_key.pub
。另外,对于我的安装,ssh守护进程使用的是ECDSA密钥,而不是RSA密钥,因此实际上我必须运行的是ssh-keygen -lf /etc/ssh/ssh_host_ecdsa_key.pub
。
ssh
第一次从14.04 连接到主机时,它显示MD5指纹。要使ssh-keygen
16.04显示MD5指纹,必须使用-E md5
选项。