2015-04-16 8 views
2

Использование pexpect Я хочу, чтобы ssh-сессии и ssh подключались через несколько серверов к окончательному серверу, как я бы сделал с Expect.pexpect ssh через несколько хостов

версия Python: 2.7.3

#!/usr/bin/python 

import pexpect 
#import getpass 
#import time 

child = pexpect.spawn ('ssh [email protected]') 
child.expect ('P*') 
child.sendline ('blahblahblah') 
child.expect ('P*') 
child.sendline ('ssh server2.foo') 
child.expect ('P*') 
child.sendline ('blahblahblah') 
child.interact() 

добраться до моего первого прыжка не проблема, Войти на сервере обув, но я не знаю синтаксис pexpect ожидать «послать - SSH $ пользователя @ $ host \ r "для последующих переходов.

ответ

0

Вы можете идти с sendline, как вы уже сделали

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

child.interact()