Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python pexpect不启动我的ssh隧道_Python_Ssh_Pexpect - Fatal编程技术网

python pexpect不启动我的ssh隧道

python pexpect不启动我的ssh隧道,python,ssh,pexpect,Python,Ssh,Pexpect,我得到了这个脚本(称为隧道): (ip服务器替换为ssh_服务器_ip) 我尝试通过python pexpect运行它 import pexpect import time p = pexpect.run('./tunnel') #does not work with spawn #p = pexpect.spawn('./tunnel') p.expect('password: ') time.sleep(2) p.sendline('pswd') 当我运行脚本时,有一个与服务器的连接

我得到了这个脚本(称为隧道):

(ip服务器替换为ssh_服务器_ip)

我尝试通过python pexpect运行它

import pexpect 
import time

p = pexpect.run('./tunnel')
#does not work with spawn
#p = pexpect.spawn('./tunnel') 
p.expect('password: ')
time.sleep(2)
p.sendline('pswd')
当我运行脚本时,有一个与服务器的连接,但它不会持续很长时间(几秒钟)

如果ssh隧道已完全建立,我应该具备以下功能:

ssh        8130    root    3u  IPv4 503864      0t0  TCP 192.168.1.36:46326->ssh_server_ip:https (ESTABLISHED)
ssh        8130    root    4u  IPv6 505215      0t0  TCP [::1]:5545 (LISTEN)
ssh        8130    root    5u  IPv4 505216      0t0  TCP 127.0.0.1:5545 (LISTEN)
我应该使用bash expect而不是python pexpect吗


thanx伙计们

你需要这样写:

p.sendline('password')
p.expect(pexpect.EOF)

否则,Python脚本将在发送密码后立即退出,这反过来将终止
ssh
命令。

当然输出中没有错误。好的,现在出现另一个问题;看起来需要轰炸服务器(我需要一次又一次地尝试连接)才能接受连接。在我的python脚本中,如果服务器不接受连接,就会出现错误。所以我需要在没有连接的情况下循环脚本,但我不知道在这种情况下使用什么条件。听起来像是另一个问题。请问一个新问题。
ssh        8130    root    3u  IPv4 503864      0t0  TCP 192.168.1.36:46326->ssh_server_ip:https (ESTABLISHED)
ssh        8130    root    4u  IPv6 505215      0t0  TCP [::1]:5545 (LISTEN)
ssh        8130    root    5u  IPv4 505216      0t0  TCP 127.0.0.1:5545 (LISTEN)
p.sendline('password')
p.expect(pexpect.EOF)