Как использовать paramiko с pexpect? - PullRequest
1 голос
/ 26 апреля 2020

Я успешно открываю соединение s sh с paramiko.

Поскольку я хочу использовать pexpect для автоматического c взаимодействия с системой на удаленном конце, я хотел бы передать paramiko подключение к pexpect.fdpexpect.fdspawn , но эти два не совмещаются.

Paramiko дает мне файловый дескриптор, но документация явно говорит о том, что он не может использоваться для чтения или письма . Мне нужен двунаправленный файловый дескриптор для чтения и записи, но мне трудно понять, как соединить точки.

Я понимаю, почему этот кусок кода не работает, но я не не знаю, как создать то, что работает.

#!/usr/bin/env python3

import pexpect
import pexpect.fdpexpect
import paramiko

sshc = paramiko.client.SSHClient()
sshc.set_missing_host_key_policy(paramiko.AutoAddPolicy())
sshc.connect('192.0.2.1', username='redacted', password='redacted',
             look_for_keys=False, allow_agent=False)
io = pexpect.fdpexpect.fdspawn(sshc.invoke_shell().fileno())

io.sendline('')
...