使用密钥对(.pem文件)通过Fabric连接到EC2

时间:2011-02-21 18:43:34

标签: python fabric

任何人都有任何Fabric配方,显示如何使用pem文件连接到EC2?

我尝试用这种方式写它: Python Fabric run command returns "binascii.Error: Incorrect padding"

但是当我执行run()函数时,我遇到了一些编码问题。

3 个答案:

答案 0 :(得分:42)

要使用pem文件我通常将pem添加到ssh代理,然后只需引用用户名和主机:

ssh-add ~/.ssh/ec2key.pem
fab -H ubuntu@ec2-host deploy

或指定env信息(没有密钥),例如您链接到的示例:

env.user = 'ubuntu'
env.hosts = [
    'ec2-host'
]

正常运行:

fab deploy

答案 1 :(得分:32)

如果不解决编码问题,可以将EC2内容放入ssh配置文件中:

  • 的〜/ .ssh /配置

或者,如果是全球性的:

  • 的/ etc / ssh_config中

在那里你可以指定主机,IP地址,用户,识别文件等,所以这很简单:

ssh myhost

示例:

Host myhost
  User ubuntu
  HostName 174.129.254.215
  IdentityFile ~/.ssh/mykey.pem

有关详细信息:man ssh_config

答案 2 :(得分:10)

您可以做的另一件事是在env变量中设置key_filename:https://stackoverflow.com/a/5327496/1729558