Python 结构主机与密码和密钥文件名结合使用
使用织物版本。我有两个用户Python 结构主机与密码和密钥文件名结合使用,python,fabric,Python,Fabric,使用织物版本。我有两个用户root和abcroot用户需要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'
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?
从fabric.api导入*
def生产()
env.hosts=['root@host', 'abc@host']
env.passwords={'abc@host“:”通过“}
env.key_filename='key.pem'#对于根用户
@主持人('root@host')
def test():
运行('id')#工作
@主持人('abc@host')
def test2():
#env.key_filename=[]#尝试了这个没有运气
#env.no_keys=True#尝试了这个,运气不好
#env.use_ssh_config=False#尝试了这个没有运气
运行('id')#如果要通过enviroment dict指定密码,则必须指定包含端口号的完整主机字符串。在您的情况下:env.passwords={'abc@host:22':'pass'}
文档建议使用SSH密钥<代码>环境密码
和<代码>环境密码用作内存缓存以方便使用。我不确定他们是否会被这样虐待。