提示密码时出现fabric任务错误

2 投票
2 回答
2748 浏览
提问于 2025-04-17 04:07

我遇到了一个错误,怎么也解决不了。我有一个简单的fabric任务,需要在远程系统上以不同的用户身份运行,比如:

def update():
    env.user = 'otheruser'
    #~ env.password = 'otherpass'  # this works, but I don't want it here.
    with cd(env.sitefolder):
        run('hg pull -u')

如果我把密码直接写在代码里,它可以正常工作。如果我用 fab -p otherpass update 也可以正常运行。如果我不提供密码,文档上说会提示我输入。这是对的,但实际上并不管用。每次我输入密码后,都会出现这个错误:

> fab dev update
[darkstar] Executing task 'update'
[darkstar] run: hg pull -u
[darkstar] Login password: 
ERROR:paramiko.transport:Exception: Error reading SSH protocol banner
...
Fatal error: Error reading SSH protocol banner

Aborting.

我在Ubuntu Natty上使用fabric 1.2.2。我也试过env.no_keys这个选项,但没有任何变化。有人能帮帮我吗?

2 个回答

1

如果你的电脑内存或硬盘空间不够,也可能会出现这个问题。重启电脑或者解决内存和硬盘空间不足的问题,通常可以解决这个情况。

5

自己来输入密码吧!

def update():
    env.user = 'otheruser'
    env.password = getpass.getpass('Enter password: ')
    with cd(env.sitefolder):
        run('hg pull -u')

getpass 是标准库的一部分,它就像 raw_input,只是输入时不会显示你打的内容。

撰写回答