通过给私钥作为字符串ssh到服务器 - paramiko aws lambda问题
问题描述:
我想要SSH服务器使用python paramiko包。通过给私钥作为字符串ssh到服务器 - paramiko aws lambda问题
当我试图使用“pem
”密钥ssh到服务器然后它工作,但当我尝试通过采取字符串中的私钥内容它显示错误。
下面是代码和输出:
import paramiko<br/>
import StringIO<br/>
content="-----BEGIN RSA PRIVATE KEY----- MIIEowIBAAKCAQE ----whatever content"<br/>
private_key = StringIO.StringIO(content)<br/>
k = paramiko.RSAKey.from_private_key(private_key)<br/>
c = paramiko.SSHClient()<br/>
c.set_missing_host_key_policy(paramiko.AutoAddPolicy())<br/>
host="XX.XX.XX.XXX"<br/>
c.connect(hostname = host,username="ec2-user", pkey = k)<br/>
print "Connected to " + host`<br/>
输出:
Traceback (most recent call last):<br/>
File "one.py", line 6, in <module><br/>
k = paramiko.RSAKey.from_private_key(private_key)<br/>
File "/home/ec2-user/abc/local/lib/python2.7/site-packages/paramiko/pkey.py", line 217, in from_private_key<br/>
key = cls(file_obj=file_obj, password=password)<br/>
File "/home/ec2-user/abc/local/lib/python2.7/site-packages/paramiko/rsakey.py", line 42, in __init__<br/>
self._from_private_key(file_obj, password)<br/>
File "/home/ec2-user/abc/local/lib/python2.7/site-packages/paramiko/rsakey.py", line 167, in _from_private_key<br/>
data = self._read_private_key('RSA', file_obj, password)<br/>
File "/home/ec2-user/abc/local/lib/python2.7/site-packages/paramiko/pkey.py", line 277, in _read_private_key<br/>
raise SSHException('not a valid ' + tag + ' private key file')<br/>
paramiko.ssh_exception.SSHException: not a valid RSA private key file<br/>
任何人都可以提出可能是什么问题呢?
答
私钥文件是一个多行文件。
因此,将它作为字符串使用时,请保留内容结构以保持其有效性。
content = """-----BEGIN RSA PRIVATE KEY-----
MIIEpgSIJOBAAKCAQEAqwH5fWIbtFRankLqvtnQ6OKwmIa49i
..........................................
-----END RSA PRIVATE KEY-----"""
private_key = StringIO.StringIO(content)
k = paramiko.RSAKey.from_private_key(private_key)
franklinsijo谢谢。它对我来说非常合适。 –