任何人都有任何Fabric配方,显示如何使用pem文件连接到EC2?
我尝试用这种方式写它: Python Fabric run command returns "binascii.Error: Incorrect padding"
但是当我执行run()
函数时,我遇到了一些编码问题。
答案 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配置文件中:
或者,如果是全球性的:
在那里你可以指定主机,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