我有 fab 文件,其中包含
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] 'code' 的登录密码:
我在我使用 key 通过 ssh 连接到的 ec2 实例上运行它,并且 ssh 的密码登录被禁用
编辑:
我认为 fabric 首先是 ssh code@localhost
但由于密码 sshing 被禁用,所以它不会工作
最佳答案
如果你真的想要并且需要使用 run()
而不是 local()
你可以将你的 SSH 公钥添加到 ~/.ssh/authorized_keys
您的用户帐户的文件。
这看起来像这样:
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
此解决方案将绕过本地计算机的登录密码提示。当然,您必须为每台运行 fabfile 的本地机器执行此操作。
关于python - fabric 一直要求输入密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12795636/