如果不退出ssh_tunnel,请打开新的终端

问题描述:

我对gui使用Python和wxpython。我正在尝试连接ssh隧道。连接到ssh后,想要一个新的终端打开并且必须在本地机器上继续我的操作。如何实现这一目标?如果不退出ssh_tunnel,请打开新的终端

我试图子,Pexpect的和的paramiko,但都能够连接到SSH而不是打开新的端子短

下面我的代码是存在的,我试着用Pexpect的:

import time 
import sys 
import pexpect 
c = pexpect.spawn("ssh -Y -L xxxx:localhost:xxxx user @ host.com") 
time.sleep(0.1) 
c.expect("[pP]aasword") 
c.sendline("xxxxxx") 
time.sleep(0.2) 
c.interact() 
c.pexpect([[email protected]~]$) 
# here after its connects to ssh then command wont be executed 
c.sendline("xfce4-terminal") 

月24/04/2013 我可以打开新的终端,但是当新的终端打开gui的控件时,会发生什么情况。任何帮助?

+0

你想在本地客户端上打开一个新的终端? – poolie 2013-04-23 05:57:21

+0

@pool:是的。在连接到ssh之后,我必须在本地机器上执行少量操作。 – nammu 2013-04-23 08:07:53

打开一个新的本地终端并连接一个现有的进程到它有点复杂。至少有三种方法:

  1. 打开终端,然后开始连接,并运行所有试图从其中建立连接的代码。这是最简单的。主要缺点是即使连接失败,终端也会出现,这可能是您想要避免的。

  2. 通过会话tmuxscreen运行连接尝试,并且如果您检测到它成功,则将该会话重新连接到新终端。

  3. 让你的Python程序提供一个终端可以附加到的pty-你的程序需要在远程连接和pty之间挂起来传递输入和输出。