pexpectによるSSH多重接続方法について
当方python,linux初心者です。pexpectを利用してsshで多重接続したいのですが、うまくいきません。
実施したい手順は以下の通りです。
1.A端末からB端末へSSH接続
2.B端末からA端末へSSH接続
3.2のSSH接続を切断
4.1のSSH接続を切断
A端末(mac python3.5.1 pexpect4.2.1)
B端末(ubuntu python3.5.1+ pexpect4.2.1)
以下コードです。
a_method1.py
import pexpect
def a_method1():
p = pexpect.spawn('ssh b_ip_addr')
p.expect('ssword:*')
p.sendline('passwd')
p.sendline('python3 /b_path/b_method.py')
p.sendline('exit')
p.interact()
if __name__ == '__main__':
a_method1()
b_method.py
import pexpect
def b_method():
p = pexpect.spawn('ssh a_ip_addr')
p.expect('ssword:*')
p.sendline(passwd)
p.sendline('python3 /a_path/a_method2.py')
p.sendline('exit')
p.interact()
if __name__ == '__main__':
b_method()
a_method2.py
def a_method2():
pass
if __name__ == '__main__':
a_method2()
結果は以下の通りです。
$ python3 a_method.py
python3 /b_path/b_method.py
exit
python3 /b_path/b_method.py
exit
Welcome to Ubuntu情報
* Documentation: https://help.ubuntu.com/
999 packages can be updated.
999 updates are security updates.
Last login: from a_ip_addr
B端末:~$ python3 /b_path/b_method.py
B端末:~$ exit
ログアウト
Connection to b_ip_addr closed.
A端末:~a_user$
以上です、よろしくお願い致します。