【问题标题】:Fabric using SSH key to connect the ec2 instanceFabric 使用 SSH 密钥连接 ec2 实例
【发布时间】:2019-02-26 16:53:24
【问题描述】:

我正在学习自动连接已创建的 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实例连接成功

【问题讨论】:

    标签: python ssh fabric ssh-keys


    【解决方案1】:
    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. 如果您希望fabric 使用myhostname 的主机部分,您可能必须告诉它连接到myhostname

      c = Connection('myhostname')
      

      你告诉它连接到一个 IP 地址,它可能不会将它与主机部分联系起来

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

    【讨论】:

    • Home 是问题之一,我发现我应该触摸 /.ssh 中的配置而不是 /ssh
    【解决方案2】:

    我想你错过了PreferredAuthentications 选项。
    而且您输入的密钥文件名不正确。

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

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

    【讨论】:

      猜你喜欢
      • 2015-03-14
      • 2013-07-18
      • 1970-01-01
      • 2018-07-30
      • 2021-05-21
      • 1970-01-01
      • 2014-11-28
      • 2020-08-07
      • 1970-01-01
      相关资源
      最近更新 更多