Fabric主机与密码和key_filename结合使用

时间:2014-07-16 00:06:18

标签: python fabric

使用Fabric版本1.9.0。我有两个用户rootabcroot用户需要ssh密钥,而另一个用户需要密码才能在同一主机上登录:

from fabric.api import *

def production():
    env.hosts = ['root@host', 'abc@host']
    env.passwords = {'abc@host': 'pass'}
    env.key_filename = 'key.pem' # for root user


@hosts('root@host')
def test():
    run('id') # works

@hosts('abc@host')
def test2():
    # env.key_filename = [] # tried this no luck
    # env.no_keys = True # tried this no luck
    # env.use_ssh_config = False # tried this no luck
    run('id') # <------- asks password for user abc, why?

执行fab production test test2后,test2正在询问用户abc的密码是否应该查看env.passwords

1 个答案:

答案 0 :(得分:0)

如果要通过enviroment dict指定密码,则必须指定包含端口号的完整主机字符串。在您的情况下:env.passwords = {'abc@host:22': 'pass'}