2013-04-23 69 views
0

我對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

回答

2

打開一個新的本地終端並連接一個現有的進程到它有點複雜。至少有三種方法:

  1. 打開終端,然後開始連接,並運行所有試圖從其中建立連接的代碼。這是最簡單的。主要缺點是即使連接失敗,終端也會出現,這可能是您想要避免的。

  2. 通過會話tmuxscreen運行連接嘗試,並且如果您檢測到它成功,則將該會話重新連接到新終端。

  3. 讓你的Python程序提供一個終端可以附加到的pty-你的程序需要在遠程連接和pty之間掛起來傳遞輸入和輸出。