使用Fabric版本1.9.0。我有两个用户root
和abc
。 root
用户需要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
?
答案 0 :(得分:0)
如果要通过enviroment dict指定密码,则必须指定包含端口号的完整主机字符串。在您的情况下:env.passwords = {'abc@host:22': 'pass'}