nkr*_*rkv 56
我知道你已经问过密码,但配置系统不是更好,这样你就可以在没有密码的情况下进行结构(即SSH)吗?
为此,在本地机器上执行:
ssh-keygen 并同意所有默认值(如果您没有其他原因)cat ~/.ssh/id_rsa.pub 并复制该密钥在远程机器上:
mkdir ~/.ssh && chmod 700 ~/.sshtouch ~/.ssh/authorized_keys2 && chmod 600 ~/.ssh/authorized_keys2authorized_keys2从现在起,您的远程计算机"信任"您的本地计算机,并允许在没有密码的情况下登录.便利.
小智 50
您还可以基于每个主机设置密码.这对我来说并不明显,所以这里适合任何寻找此事的人:
from fabric import env
env.hosts = ['user1@host1:port1', 'user2@host2.port2']
env.passwords = {'user1@host1:port1': 'password1', 'user2@host2.port2': 'password2'}
Run Code Online (Sandbox Code Playgroud)
Fabric缓存在env.passwords字典中使用了密码.它使用完整主机字符串作为该字典的键和密码作为值来设置此缓存.如果您在执行任何任务之前自己设置此字典,Fabric将根本不会要求它们.
小智 8
只是为了从搜索中结束这里的任何人添加,您可以-I在运行fab时指定该选项,以提示您输入默认密码.这样在命令历史记录中就不会显示它
例:
$ fab -I my_task
Initial value for env.password:
Run Code Online (Sandbox Code Playgroud)
不将密码放入进程列表(命令显示在ps aux中)的一种方法是将它放在fabfile.py中,如下所示:
from fabric.context_managers import env
env.password = 'PASSWORD'
Run Code Online (Sandbox Code Playgroud)
把它放在任何进入远程系统的东西之前,它不再需要密码了.
也可以设置 ssh 密码 connect_args
conn = Connection(
"{username}@{ip}:{port}".format(
username=username,
ip=ip,
port=port,
),
connect_kwargs={"password": password},
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
38529 次 |
| 最近记录: |