duplicity 备份失败:“私钥文件已加密”

duplicity 备份失败:“私钥文件已加密”

我正在尝试将我的第一个 duplicity 备份上传到远程服务器,但失败了。这是我第一次使用该工具,之前它没有用过。

duplicity /home/me/Documents/ scp://me@<ip-address>//home/me/bak

这是我得到的答案:

BackendException: ssh connection to me@<ip-address>:22 failed: Private key file is encrypted
DEBUG:duplicity:BackendException: ssh connection to me@<ip-address>:22 failed: Private key file is encrypted

通过 登录ssh可以正常工作。

我搜索了网络,但找不到任何可能的解决方案。我唯一的直觉是,这可能与我的.ssh目录有关:其中包含多个身份,因此包含多个.pub关键文件

编辑:-v 9我得到以下输出(更多,但只显示最后一部分):

ssh: Kex agreed: [email protected]
DEBUG:sshbackend:Kex agreed: [email protected]
ssh: HostKey agreed: ssh-ed25519
DEBUG:sshbackend:HostKey agreed: ssh-ed25519
ssh: Cipher agreed: aes128-ctr
DEBUG:sshbackend:Cipher agreed: aes128-ctr
ssh: MAC agreed: hmac-sha2-256
DEBUG:sshbackend:MAC agreed: hmac-sha2-256
ssh: Compression agreed: none
DEBUG:sshbackend:Compression agreed: none
ssh: kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
DEBUG:sshbackend:kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
ssh: Switch to new keys ...
DEBUG:sshbackend:Switch to new keys ...
Using temporary directory /tmp/duplicity-O8U6r5-tempdir
Level 5:duplicity:Using temporary directory /tmp/duplicity-O8U6r5-tempdir
Backend error detail: Traceback (innermost last):
  File "/usr/bin/duplicity", line 1581, in <module>
    with_tempdir(main)
  File "/usr/bin/duplicity", line 1567, in with_tempdir
    fn()
  File "/usr/bin/duplicity", line 1406, in main
    action = commandline.ProcessCommandLine(sys.argv[1:])
  File "/usr/lib/python2.7/site-packages/duplicity/commandline.py", line 1140, in ProcessCommandLine
    backup, local_pathname = set_backend(args[0], args[1])
  File "/usr/lib/python2.7/site-packages/duplicity/commandline.py", line 1015, in set_backend
    globals.backend = backend.get_backend(bend)
  File "/usr/lib/python2.7/site-packages/duplicity/backend.py", line 223, in get_backend
    obj = get_backend_object(url_string)
  File "/usr/lib/python2.7/site-packages/duplicity/backend.py", line 209, in get_backend_object
    return factory(pu)
  File "/usr/lib/python2.7/site-packages/duplicity/backends/ssh_paramiko_backend.py", line 240, in __init__
    self.config['port'], e))
 BackendException: ssh connection to me@<ip-address>:22 failed: Private key file is encrypted

但没有告诉我更多

答案1

似乎 paramiko 后端目前不支持为您的密钥提供密码。

如果可能的话尝试pexpect+scp://或更好pexpect+sftp://

或者通过以下方式指定要使用的密钥

--ssh-options="-oIdentityFile='/my/backup/id'"

并确保它是不是受密码保护。

..ede/duply.net

答案2

实际起作用的是使用rsync后端。

最终令人惊讶的是,我不知道为什么scp后端不工作,因为纯粹的scp工作也是如此。

我不会接受我自己的答案,因为它并不是问题的真正解决方案,只是一种解决方法。但至少我现在可以使用它。

答案3

我在密码密钥方面也遇到了类似的问题。将密钥设置为以下两个环境变量可以帮我解决这个问题FTP_PASSWORDPASSPHRASE

https://duplicity.readthedocs.io/en/latest/duplicity.backends.ssh_paramiko_backend.html

相关内容