如果不退出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的控件时,会发生什么情况。任何帮助?
答
打开一个新的本地终端并连接一个现有的进程到它有点复杂。至少有三种方法:
打开终端,然后开始连接,并运行所有试图从其中建立连接的代码。这是最简单的。主要缺点是即使连接失败,终端也会出现,这可能是您想要避免的。
通过会话
tmux
或screen
运行连接尝试,并且如果您检测到它成功,则将该会话重新连接到新终端。让你的Python程序提供一个终端可以附加到的pty-你的程序需要在远程连接和pty之间挂起来传递输入和输出。
你想在本地客户端上打开一个新的终端? – poolie 2013-04-23 05:57:21
@pool:是的。在连接到ssh之后,我必须在本地机器上执行少量操作。 – nammu 2013-04-23 08:07:53