面料不断要求密码(fabric keeps asking for password)

2019-09-23 18:34发布

我有晶圆厂文件,其中包含

env['hosts'] = ['localhost']
env['user'] = 'code'
env['password'] = 'searce'

def mk_dirtree():
    sudo("mkdir %s" % PROJECT_DIR)
    sudo("chown -R code:code %s" % PROJECT_DIR)
    run("mkdir -p %s" % (PROJECT_DIR + '/www/static'))
    sudo("chown -R www-data:www-data %s" % (PROJECT_DIR + '/www'))

现在,当我做fab mk_dirtree我经常提示[localhost] Login password for 'code':

我在EC2实例上运行这其中我通过ssh使用键连接,并为SSH密码登录被禁用

编辑:我觉得织物先做ssh code@localhost但这不会工作,因为密码ssh方式连接被禁用

Answer 1:

如果你真的想和需要使用run()而不是local()您可以将您的SSH公钥添加到~/.ssh/authorized_keys的用户帐户的文件。

这将是这个样子:

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

该解决方案将绕过你的本地计算机的登录密码的提示。 当然,你必须为你逃到哪里你对fabfile每个本地机器做到这一点。



Answer 2:

run()sudo()操作都通过SSH进行。 如果你想运行在本地主机,你应该考虑使用一个命令local()代替:

http://docs.fabfile.org/en/1.4.3/api/core/operations.html?highlight=sudo#fabric.operations.local

在同一页面都为文档run()sudo()这既指他们是“远程主机”的推断,他们将通过SSH运行上运行的事实。



文章来源: fabric keeps asking for password