我刚刚开始使用 python 结构在远程机架空间 ubuntu 服务器上运行命令。如果没有需要我输入的命令行,我就无法运行命令。这是我如何重现问题的顺序。
使用密钥和没有密码的 ssh 连接到远程计算机没有任何问题。
这是我的 fabfile.py
from fabric.api import env, run
env.hosts = ['remote.ip.address']
env.user = 'http'
def hello():
run("touch hello.world")
我用来运行 fabfile.py 的命令(使用 python 2.7 virtualenv)
$ ~/env/py27/bin/fab -f code/fabfile.py hello
这是显示它如何总是卡住并要求我键入 exit 的命令行。
[remote.ip.address] Executing task 'hello'
[remote.ip.address] run: touch hello.world
[remote.ip.address] out: http@server-name:~$
我可以通过键入 exit 退出远程终端,命令将运行,我将返回到我的本地终端。
[remote.ip.address] out: exit
[remote.ip.address] out:
Done.
Disconnecting from remote.ip.address... done.
me@local-computer: $
这是我用来设置不需要密码的 ssh 密钥的方法。https://kb.mediatemple.net/questions/1626/Using+SSH+keys+on+your+server