SSH 连接知道主机仍需要授权

SSH 连接知道主机仍需要授权

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 哈希值,而sshSHA256 则在计算:事实上,正如前面提到的这里ssh-keygen -l -E md5 -f /etc/ssh/ssh_host_ed25519_key.pub返回与上述相同的十六进制。既然它们是同一密钥的两个不同哈希,为什么仍然询问连接确认?是否可以强制 SSH 仅使用单一哈希算法?

进一步更新:

ssh -o FingerprintHash=md5 -v backup不需要确认,所以我认为问题仅限于duply.也许,它不是指用户known_hosts文件?

答案1

duply建立在 Paramiko python 模块之上,并更深入地检查其实现,看来 Paramiko 无法管理散列的已知主机。然后,我/etc/ssh/ssh_config通过设置修改了 SSH 配置文件,并通过插入明确的目标 IP 和/或域来HashKnownHosts no重写 的内容。~/.ssh/known_hosts

相关内容