以前,这个工具运行得很好,直到我不得不更改服务器 IP。
我可以通过 sftp 连接到服务器。我还可以运行一个简单的python 代码使用 paramiko 连接到 sftp,并且工作正常。
但是当我运行 duplicity 时,它失败了:
Duplicity error: BackendException: ssh connection to SERVER_IP:22 failed
('SERVER_IP', <paramiko.ed25519key.Ed25519Key object at 0x7f8fec54f710>,
paramiko.ed25519key.Ed25519Key object at 0x7f8fec53e4d0>)
我尝试编辑sshbackend.py
,在我的发行版中ssh_paramiko_backend.py
,如下这里解释作为一个可能的解决办法但没有起作用。
确切的 duplicity 命令是:
duplicity --full-if-older-than 1M [SOURCE] sftp://[USER]@[SERVER_IP] --volsize 666 --verbosity 8 --allow-source-mismatch
正在设置密码export FTP_PASSWORD=[pass]
。我也尝试在命令中传递密码,但出现了同样的错误。
root@server:~# ssh -V
OpenSSH_7.2p2 Ubuntu-4ubuntu2.4, OpenSSL 1.0.2g 1 Mar 2016
root@server:~# duplicity -V
duplicity 0.7.06
root@server:~# python -c "import paramiko; print paramiko.__version__"
2.2.0
答案1
有用吗pexpect+sftp://
?..ede/duply.net
答案2
在目标服务器上
将以下行添加到 /etc/ssh/sshd_config:
PubkeyAcceptedKeyTypes +ssh-rsa
然后重启 sshd
systemctl restart sshd
答案3
如果通过连接到 SFTP 备份duplicity
并且收到“没有可用的身份验证方法”错误,请确保使用--ssh-askpass
duplicity 参数。
--ssh-askpass 告诉 sftp/scp 后端使用环境中的 FTP_PASSWORD,或者,如果不存在,则提示用户输入远程系统密码。此密码还用于受密码保护的 ssh 密钥。如果没有此选项,则密码应在 url 中。