首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >BackendException: ssh连接到我的服务器:22失败:不是一个有效的OPENSSH私钥文件

BackendException: ssh连接到我的服务器:22失败:不是一个有效的OPENSSH私钥文件
EN

Stack Overflow用户
提问于 2017-08-21 07:47:19
回答 1查看 1.3K关注 0票数 1

多亏了可求,我成功地将数据从家里备份到了外部服务器。( amazon )由于我不想将公司数据备份到Amazon,所以我尝试使用内部备份服务器。

然后我使用了这个命令。(我有自己的钥匙)

代码语言:javascript
运行
复制
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

在容器内部或外部使用“重复备份”命令时,我有以下错误

代码语言:javascript
运行
复制
/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容器内部或外部,以下内容正在正常运行。

代码语言:javascript
运行
复制
ssh -i /MyFolder/Keys/myuserkey myuser@mybackupserver
key_load_public: invalid format
Enter passphrase for key '/MyFolder/Keys/myuser':
[myuser@mybackupserver ~]$

例如,编辑备份文件为我提供了以下内容:

代码语言:javascript
运行
复制
#!/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

我试图检查容器中的env变量,请在下面找到我所拥有的:(请注意,passphrase作为env变量添加到了这里中)

代码语言:javascript
运行
复制
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比较这两个私钥文件(亚马逊和公司),两者都说

代码语言:javascript
运行
复制
RSA key ok
writing RSA key
-----BEGIN RSA PRIVATE KEY-----
....
-----END RSA PRIVATE KEY-----

Edit2 :1.在双面性-回溯上看了一眼都没有成功

  1. 有关信息,Paramiko版本为2.2.1。
  2. 使用下面的python脚本连接是成功的。 导入paramiko StringIO f= open('/MyFolder/Keys/myuserkey','r') s= f.read() keyfile = StringIO.StringIO(s) mykey = paramiko.RSAKey.from_private_key(keyfile,StringIO=‘mypassphrase’) ssh = paramiko.SSHClient() paramiko.SSHClient ssh.connect('mybackupserver',用户名=‘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’
EN

回答 1

Stack Overflow用户

发布于 2017-08-22 12:43:51

尝试pexpect+scp://后端(有关可用ssh后端的更多信息,可以在重复的手册http://duplicity.nongnu.org/duplicity.1.html中找到)。

它使用命令行ssh二进制文件。也许错误是不同的,还是更详细?

错误在

代码语言:javascript
运行
复制
ssh -i /MyFolder/Keys/myuserkey myuser@mybackupserver
key_load_public: invalid format

看起来不正常。尝试以正确的格式提供公钥,或者根本不提供公钥。

.ede/trey.net

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45791778

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档