从python打开交互式ssh shell时出错

2024-05-19 18:18:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图通过fabric打开一个交互式sshshell。在

要求:

  • 使用远程连接字符串中的结构主机
  • 在当前终端中打开完全交互的shell
  • 在osx和ubuntu上工作
  • 不需要在fabric/python和remote之间传输数据。所以fabric任务可以在后台结束。在

目前为止:

在工厂文件.py公司名称:

def test_ssh():
    from subprocess import Popen
    Popen('ssh user@1.2.3.4 -i "bla.pem"', shell=True)

终端内:

^{pr2}$

然后,如果我试图在远程提示符上输入一个命令,它将在本地执行,然后返回到本地提示符。 有人知道解决办法吗?在

注意:我知道结构open_shell,但这对我不起作用,因为stdout滞后,使其无法使用。在


Tags: 字符串终端远程remoteubuntushell结构ssh
1条回答
网友
1楼 · 发布于 2024-05-19 18:18:46

稍加修改就可以做到:

def test_ssh():
    from subprocess import call
    call('ssh user@1.2.3.4 -i "bla.pem"', shell=True)

正如这个question的答案所暗示的那样,这个错误表明错误来自ssh无法连接到后台进程的stdin/out。在

使用call时,fabric任务不会在后台结束,但只要它不干扰stdin/out,我就可以接受。在

相关问题 更多 >