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 散列,而ssh
SHA256 的散列:事實上,正如這裡提到的,ssh-keygen -l -E md5 -f /etc/ssh/ssh_host_ed25519_key.pub
返回與上述相同的十六進制。既然它們是同一個密鑰的兩個不同的雜湊,為什麼仍然要求連接確認?是否可以強制 SSH 只使用一個雜湊算法?進一步更新:
ssh -o FingerprintHash=md5 -v backup
不需要確認,所以我認為問題僅限於duply
. 也許,它不是指使用者known_hosts
文件嗎?
duply
基於 Paramiko python 模組建構並更深入地檢查其實現,似乎 Paramiko 無法管理散列已知主機。然後我/etc/ssh/ssh_config
通過設置修改了SSH配置文件,並通過插入明確的目標IP和/或域HashKnownHosts no
重寫了內容。~/.ssh/known_hosts