簡體   English   中英

Duplicity正在爭論BackendException:與我的服務器的SSH連接:22失敗:無效的OPENSSH私鑰文件

[英]Duplicity is arguing BackendException: ssh connection to my server:22 failed: not a valid OPENSSH private key file

多虧了mayeg ,我已經設法將數據從家里備份到外部服務器。 (一個亞馬遜)由於我不想將公司數據備份到亞馬遜,因此我嘗試使用內部備份服務器。

然后,我使用了此命令。 (我有自己的鑰匙)

docker run -d     --name volumerize     
-v /MyFolder/Keys/:/MyFolder/Keys/ 
-v jenkins_volume:/source:ro     
-v backup_volume:/backup     
-e 'VOLUMERIZE_SOURCE=/source' 
-e "VOLUMERIZE_TARGET=scp://myuser@mybackupserver/home/myuser/" 
-e 'VOLUMERIZE_DUPLICITY_OPTIONS=--ssh-options "-i /MyFolder/Keys/myuserkey"'  
-e 'PASSPHRASE="mypassphrase"' blacklabelops/volumerize

在容器內部或外部使用duplicity backup命令時,出現以下錯誤

/usr/lib/python2.7/site-packages/paramiko/ecdsakey.py:200: DeprecationWarning: signer and verifier have been deprecated. Please use sign and verify instead.
  signature, ec.ECDSA(self.ecdsa_curve.hash_object())
BackendException: ssh connection to myuser@mybackupserver:22 failed: not a valid OPENSSH private key file

奇怪的是,在volumerize容器內部或外部,以下各項正常運行。

ssh -i /MyFolder/Keys/myuserkey myuser@mybackupserver
key_load_public: invalid format
Enter passphrase for key '/MyFolder/Keys/myuser':
[myuser@mybackupserver ~]$

例如,編輯備份文件給我以下內容:

#!/bin/bash

set -o errexit

source /etc/volumerize/stopContainers
duplicity $@ --allow-source-mismatch --archive-dir=/volumerize-cache --ssh-options "-i /MyFolder/Keys/myuserkey"  /source scp://myuser@mybackupserver/home/myuser/
source /etc/volumerize/startContainers

我試圖檢查容器內的環境變量,請在下面找到我所擁有的:(請注意,密碼已作為環境變量添加到此處

HOSTNAME=b68f0e1a2d45
TERM=xterm
BLACKLABELOPS_HOME=/var/blacklabelops
GOOGLE_DRIVE_CREDENTIAL_FILE=/credentials/googledrive.cred
VOLUMERIZE_HOME=/etc/volumerize
VOLUMERIZE_SOURCE=/source
DOCKERIZE_VERSION=v0.5.0
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/etc/volumerize
VOLUMERIZE_TARGET=scp://myuser@mybackupserver/home/myuser/
PWD=/etc/volumerize
VOLUMERIZE_DUPLICITY_OPTIONS=--ssh-options "-i /MyFolder/Keys/myuserkey"
VOLUMERIZE_CACHE=/volumerize-cache
GPG_TTY=/dev/console
SHLVL=1
HOME=/root
no_proxy=*.local, 169.254/16
GOOGLE_DRIVE_SETTINGS=/credentials/cred.file
PASSPHRASE="mypassphrase"
_=/usr/bin/env

有人可以指出我正確的方向嗎?

問候,皮埃爾

Edit1:我試圖使用openssl rsa -in yourkey.pem -check比較兩個私鑰文件(亞馬遜和公司),並且都說

RSA key ok
writing RSA key
-----BEGIN RSA PRIVATE KEY-----
....
-----END RSA PRIVATE KEY-----

編輯2:1。 duplicity-backendexception上沒有任何成功的外觀

  1. 有關信息,Paramiko版本為2.2.1

  2. 使用以下python腳本成功連接。

     import paramiko import StringIO f = open('/MyFolder/Keys/myuserkey','r') s = f.read() keyfile = StringIO.StringIO(s) mykey = paramiko.RSAKey.from_private_key(keyfile,password='mypassphrase') ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) ssh.connect('mybackupserver',username='mouser',pkey=mykey) stdin, stdout, stderr = ssh.exec_command('uptime') stdout.readlines() 

    [u'12:35:27最多3天,1:42,0個用戶,平均負載:1.59、3.10、3.00 \\ n']

嘗試使用pexpect + scp://后端(有關ssh后端的更多信息,請參見重復手冊頁http://duplicity.nongnu.org/duplicity.1.html )。
它使用命令行ssh二進制文件。 可能錯誤有所不同或更詳細?

錯誤

ssh -i /MyFolder/Keys/myuserkey myuser@mybackupserver
key_load_public: invalid format

似乎不正常。 嘗試以正確的格式或完全不提供公共密鑰。

..ede / duply.net

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM