我正在尝试使用duply和安全连接来设置备份服务器。
我已经创建了具有以下内容的~/.ssh/config文件:
Host backup
IdentityFile ~/.ssh/id_ed25519_backup
Hostname <server_ip>
Port 22
User <user_on_host>此外,我还定义了known_hosts文件,在其中复制粘贴服务器公钥(在/etc/ssh/ssh_host_ed25519_key.pub中找到)
当使用ssh -v backup命令时,一切似乎都正常工作:
Authenticated to <server_ip> ([<server_ip>]:22)但是,在启动duply备份例程时,我发现无法识别服务器:
The authenticity of host '[<server_ip>]:22' can't be established.
SSH-ED25519 key fingerprint is c3:06:95:f8:5f:d3:76:7f:c6:9d:19:ef:e5:23:9a:14.
Are you sure you want to continue connecting (yes/no)? 为什么会发生这种情况?
duply似乎正在计算公钥的MD5哈希,而ssh则是SHA256 one:事实上,正如所提到的这里,ssh-keygen -l -E md5 -f /etc/ssh/ssh_host_ed25519_key.pub返回的十六进制数与前面所述的相同。由于它们是同一密钥的两个不同的散列,为什么仍然会询问连接确认?是否可以强制SSH只使用一个散列算法?
ssh -o FingerprintHash=md5 -v backup不需要确认,所以我认为这个问题仅限于duply。也许,它不是指用户known_hosts文件吗?
发布于 2021-02-27 12:30:52
duply构建在Paramiko模块之上,并且更深入地检查它的实现,看起来Paramiko无法管理已知的散列主机。然后,我通过设置/etc/ssh/ssh_config修改了SSH配置文件HashKnownHosts no,并通过插入明确的目标in和/或域重写了~/.ssh/known_hosts的内容。
https://unix.stackexchange.com/questions/635587
复制相似问题