python - fabric 一直要求输入密码

标签 python ssh fabric

我有 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/

相关文章:

jenkins - 管道中的 channel 关闭异常

python - 通过 SFTP 从远程服务器读取 GZIP 文本文件

python - 在 Fabric 中,如何从另一个 python 文件执行任务?

python - 如何应对 Fabric 中可能出现的提示?

python - 如何使用 Pandas 数据框迭代和修改行值

java - 在 Twitter-Storm 中使用非 JVM 语言将真实数据传递给 Storms Spout

python - 如何使用截止或重叠标签调整填充

php - 你如何从ssh运行一个php文件?

python - np.array 到 python 中的函数 - 'list' 对象不可调用

ssh - 使用 wget 从 IEEExplore 下载论文