[英]Fabric using SSH key to connect the ec2 instance
我正在学习自动连接已创建的ec2实例的结构。 我在ssh文件夹中设置了ssh_config
Home myhostname
Hostname 52.62.207.113
User ubuntu
UserKnownHostsFile /dev/null
StrictHostKeyChecking no
PasswordAuthentication no
IdentityFile ~/.ssh/mykey-pem
我写了一个python文件来测试
from fabric import Connection
c = Connection('52.62.207.113')
result = c.run('uname -s')
终端回应
paramiko.ssh_exception.SSHException: No authentication methods available.
我不确定会发生什么。 我尝试手动
ssh -i mykey.pem ubuntu@52.62.207.113
它已成功连接EC2实例
Home myhostname
Hostname 52.62.207.113
...
c = Connection('52.62.207.113')
我不是Fabric用户,但我想您希望Fabric在这里使用您ssh_config
文件中的条目吗? 我可以看到两个可能的问题:
您有Home myhostname
。 正确的关键字是Host
,而不是Home
:
Host myhostname Hostname 52.62.207.113
如果希望结构将主机部分用于myhostname
,则可能必须告诉它连接到myhostname
:
c = Connection('myhostname')
您告诉它要连接到IP地址,并且它可能与主机部分无关
您得到的实际错误“没有可用的身份验证方法”,可能是因为Fabric没有应用ssh_config
的Host
部分,并且它不知道会话应使用的任何密钥文件。
我认为您错过了PreferredAuthentications
选项。
您输入的密钥文件名不正确。
如下所示更改配置文件,然后尝试重新连接。
Home myhostname
Hostname 52.62.207.113
User ubuntu
PreferredAuthentications publickey
IdentityFile ~/.ssh/mykey.pem
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.