Python paramiko EOFError在尝试连接ec2设备时
我正在使用Genymotion on demand aws实例,并尝试从python连接它。我想从python向实例发送adb命令。这里有一个从任何计算机连接实例的教程: 用于为实例创建ssh隧道的ssh命令为:Python paramiko EOFError在尝试连接ec2设备时,python,ssh,amazon-ec2,paramiko,ssh-tunnel,Python,Ssh,Amazon Ec2,Paramiko,Ssh Tunnel,我正在使用Genymotion on demand aws实例,并尝试从python连接它。我想从python向实例发送adb命令。这里有一个从任何计算机连接实例的教程: 用于为实例创建ssh隧道的ssh命令为: ssh -i key.pem -NL 5555:localhost:5555 root@instance_ip 我尝试使用paramiko库和repo()中的forward.py演示 首先,我尝试通过cli创建隧道,这是我为创建ssh隧道输入的内容: python forward.p
ssh -i key.pem -NL 5555:localhost:5555 root@instance_ip
我尝试使用paramiko库和repo()中的forward.py演示
首先,我尝试通过cli创建隧道,这是我为创建ssh隧道输入的内容:
python forward.py <instance_ip> -r localhost:5555 -u root -p 5555 -K "path/to/mykey.pem"
python forward.py-r localhost:5555-u root-p 5555-K“path/to/mykey.pem”
答复是:
Connecting to ssh host <instance_ip>:22 ...
*** Failed to connect to <instance_ip>:22: EOFError()
连接到ssh主机:22。。。
***无法连接到:22:EOFError()
我想不出这里有什么问题
有人能帮我吗?非常感谢 您可以使用以下代码片段从Python ssh到EC2实例
key = paramiko.RSAKey.from_private_key_file(path/to/mykey.pem)
client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# Connect/ssh to an instance
try:
client.connect(hostname=instance_ip, username="root", pkey=key)
# Execute a command(cmd) after connecting/ssh to an instance
stdin, stdout, stderr = client.exec_command(cmd)
print stdout.read()
# close the client connection once the job is done
client.close()
break
except Exception, e:
print e
实际上我试过很多这样的片段(还有这一个)。每次它都会给我同样的“EOFError”。我认为我的私钥文件可能有问题,但我真的不知道问题出在哪里。对于我发布的代码,唯一不起作用的原因可能是1)错误的pem密钥2)错误的实例IP 3)错误的EC2实例用户名。请检查这三个。如果这没有帮助,请在此处发布您的代码。注意:提供完整的文件路径,包括pem文件名。例如:key_path=os.path.join('license','file_name.pem'),并确保您的密钥和ip地址在linux机器上正常运行,并查看是否建立了连接。ssh-i文件_name.pem用户_name@ip_addressI完全按照你说的做了(实际上很多次),但仍然不起作用。paramiko.RSAKey.from_private_key_文件行运行良好,我还看到paramiko包中pkey.py中的函数_read_private_key看起来不错。我的终端的ssh也可以工作。你知道检查我的pem文件的其他方法吗?顺便说一下,非常感谢!