python - Fabric - 如何动态提供 ssh 密码

标签 python django ssh celery fabric

我正在尝试一起使用 Fabric 、Django 和 Celery 在远程主机上进行操作。

就我而言,远程主机将是动态的。

我猜Django和Celery的使用是无关紧要的,问题可以缩小到

  • 如何在单独使用 Fabric 时动态提供 SSH 密码。

我发现这段代码展示了如何使用 Django 和 Celery 执行此操作。

from fabric.api import hosts
from celery import task

@task()
def remote_celery_task():
    username, host = get_host_details()
    host_string = "%s@%s" % (username, host)

    @hosts(host_string)
    def fab_task():
        run("ls")

    execute(fab_task)

但它没有告诉我们如何动态地将 SSH 密码传递给 Fabric。 我知道以这种方式提供密码不太安全,但我现在愿意牺牲安全性。

更新

当我将代码更改为

时,它就可以工作了
@hosts(host_string)
    def my_fab_task():
        env.password = testhost.SSH_password # is this the correct way ? its working for me
        run("ls")

最佳答案

不用担心密码,只需执行 ssh keygens 即可。在您要连接的主机之间共享 key ,您可以在远程主机上执行无密码 ssh 操作。

关于python - Fabric - 如何动态提供 ssh 密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16921357/

相关文章:

python - MySQL高效导入大数据列表

python - 如何调试 gunicorn 失败问题? ( worker 无法启动)

linux - 通过 SSH 的毫秒计时

python - 如何从 python 中没有 __init__.py 的文件夹导入文件?

Python——使用函数属性作为返回值

html - django 模板继承 : how to NOT display block from parent?

SSH 添加 : Invalid key length

ubuntu - 用于 vim/tmux 的 headless SSH 服务器上的 xsel/xclip

python - PYCFunctionWithKeywords 从 python 中被错误调用

python - 当 wagtail BooleanField 为 true 时启用 wagtail DateField