我使用我的用户名通过 ssh 使用 ip 地址登录到远程服务器 ssh user@ipaddress
在我的known_hosts文件和服务器的公钥文件中获得了以下服务器密钥:
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIML0EFwYit1Z/zUQx3kUsUxpS0Masdizyl36UGDrXP3W
其 sha256sum 如下:
user@computer:~$ sha256sum /etc/ssh/ssh_host_ed25519_key.pub
cc86691095b2e5a76e96744a30520f71a14c90a4a07c294a5b9c7ce1cf4cb176 /etc/ssh/ssh_host_ed25519_key.pub
我想为它创建一个别名,因此我将以下配置添加到我的 ~/.ssh/config 文件中:
Host wiki
HostName SameIPAddress
IdentityFile ~/.ssh/id_ed25519
ServerAliveInterval 120
ServerAliveCountMax 30
当我尝试使用别名 cmd 登录时ssh user@wiki
我获得了以下服务器密钥:
The authenticity of host 'SameIPAddress (SameIPAddress)' can't be established.
ED25519 key fingerprint is SHA256:nRNi8asPrzCz0HMraA3e9qyQbT37J+3/e5HVaovhCNmM.
我认为,如果我使用相同的密钥但不同的别名登录到同一个服务器,我应该获得与使用 IP 地址登录时获得的密钥相同的 sha256 总和。
我希望您能对我尝试使用别名登录时看到不同密钥的原因有所了解:)
1
最佳答案
1
密钥的 SHA256 指纹不等于包含它的文件的 SHA256 总和。
在服务器上运行ssh-keygen -lf /etc/ssh/ssh_host_ed25519_key
以查找密钥的 SHA256 和。
1
-
1或者如果你是一个受虐狂,
cut -d' ' -f2 pubkeyfile | base64 -d | sha256sum | xxd -r -p | base64 | sed 's/=*$//'
–
|
CheckHostIP no
配置?旧版 OpenSSH 默认将主机名和CheckHostIP yes
IPaddr存储在 known_hosts 中,因此对同一 IPaddr 使用不同的名称会找到并使用已知密钥。在最近的 OpenSSH 上,您可以根据需要明确重新启用此行为。但是对于您发布的密钥,我找不到!CxBo1OwWLH9WIHeGZmoUSGgcvywUwaHeuG2P/Q2hHEI
nRNi8asPrzCz0HMraA3e9qyQbT37J+3/e5HVaovhCNmM
–
|