Fabric - 如何动态提供ssh密码

时间:2013-06-04 15:09:23

标签: 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")

1 个答案:

答案 0 :(得分:2)

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