通过多个主机pexpect ssh

时间:2015-04-16 18:38:05

标签: python ssh pexpect

使用pexpect我想生成一个ssh会话,ssh通过几个服务器连接到最终服务器,就像我对Expect一样。

Python版本:2.7.3

#!/usr/bin/python

import pexpect  
#import getpass  
#import time  

child = pexpect.spawn ('ssh foo@foo')  
child.expect ('P*')  
child.sendline ('blahblahblah')  
child.expect ('P*')  
child.sendline ('ssh server2.foo')  
child.expect ('P*')  
child.sendline ('blahblahblah')  
child.interact()  

我的第一跳没有问题,登录服务器foo,但我不知道pexpect语法期望“send - ssh $ user @ $ host \ r \ n”用于后续跃点。

1 个答案:

答案 0 :(得分:0)

你可以继续使用像你已经完成的发送行

child = pexpect.spawn('ssh %s@%s' % (username, relayhost0), timeout = 5)
child.expect('P*')
child.sendline('ssh %s@%s' % (username, relayhost1))
child.expect('P*')
child.sendline('ssh %s@%s' % (username, relayhost2))
child.expect('P*')

child.interact()