Пересылка по ssh через pexpect не работает, если я не использую .interact () - PullRequest
0 голосов
/ 19 марта 2019

Так что, вероятно, это что-то, что я не правильно понимаю, но приведенный ниже пример порождения процесса с pexpect для переноса портов у меня не работает.

Когда он запускается (и я продолжаю работать прямо сейчасиспользуя REPL) он не разрешает соединения на локальном хосте 7777.

Однако, если я добавлю child.interact(), то порт начнет разрешать соединения!

Что здесь может происходитьчто я не принимаю во внимание?

import os
import time
import pexpect

password = os.getenv('PW')

child = pexpect.spawn('ssh -L 7777:10.40.135.8:22 lankster@notabign.com -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -o ServerAliveInterval=1')
time.sleep(1)

child.expect('Password:')
time.sleep(1)
child.sendline(password)
time.sleep(1)
...