экран сжимается после pexpect ssh на удаленный сервер - PullRequest
1 голос
/ 26 июня 2019

Я использую pexpect для удаленного сервера и экран передачи мне.Сценарий запускается успешно.Единственная проблема заключается в том, что выводимый на экран вид сжимается после входа в систему с использованием pexpect.это как не получить полноэкранный терминал для ввода и вывода.Эффект заключается в том, что при вводе команды это может вызвать проблемы, и некоторое содержимое не может быть полностью отображено (получить «новую строку» в середине экрана), но я уверен, что нет проблем с выводом на экран при использовании обычного входа ssh,

Я использую Iterm2 для удаленного входа, но неважно, Iterm или терминал.проблема та же.

import pexpect
import getpass, os , sys
from time import sleep

def ssh_command (user,password,servername):
    ssh_newkey = 'Are you sure you want to continue connecting'
    child = pexpect.spawn('ssh -l %s %s  '%(user, servername))
    fout = open('mylog.txt','wb')
    child.logfile = fout
    i = child.expect([pexpect.TIMEOUT, ssh_newkey, 'password: '],timeout =5)
    if i == 0: # Timeout
        print('ERROR!')
        return None
    if i == 1: # SSH does not have the public key. Just accept it.
        child.sendline ('yes')
        child.expect ('password: ')
        i = child.expect([pexpect.TIMEOUT, 'password: '],timeout =5)
        if i == 0: # Timeout
            print('ERROR!')
        return None
    child.sendline(password)
    child.interact()

ожидаемый вывод (как при обычном входе в систему через ssh):

Mac:user|/var $ ssh admin101
user@admin101's password:
[user@admin101 ~]$ echo "1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890"

сжатый вывод терминала (с использованием pexpect):

Mac:user|/var $ python remote.py
4567890an@admin101 ~]$ echo "1234567890 1234567890 1234567890 1234567890 123
...