繁体   English   中英

使用SSH密钥的Fabric连接ec2实例

[英]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文件中的条目吗? 我可以看到两个可能的问题:

  1. 您有Home myhostname 正确的关键字是Host ,而不是Home

     Host myhostname Hostname 52.62.207.113 
  2. 如果希望结构将主机部分用于myhostname ,则可能必须告诉它连接到myhostname

     c = Connection('myhostname') 

    您告诉它要连接到IP地址,并且它可能与主机部分无关

您得到的实际错误“没有可用的身份验证方法”,可能是因为Fabric没有应用ssh_configHost部分,并且它不知道会话应使用的任何密钥文件。

我认为您错过了PreferredAuthentications选项。
您输入的密钥文件名不正确。

如下所示更改配置文件,然后尝试重新连接。

Home myhostname
    Hostname 52.62.207.113
    User ubuntu
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/mykey.pem

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM