SSH-шлюз в Python - цвета доступны? - PullRequest
2 голосов
/ 03 октября 2011

Я использую привязки Python для libssh2 для программного подключения к серверу SSH2.Полученный вывод должен быть перенаправлен на удаленный сервер и отображен там.

Код ниже работает правильно, но отображает результат в монохромном режиме.Как я могу отобразить цвета или, по крайней мере, получить управляющие последовательности терминала VT100, чтобы я мог заменить их тегами HTML?

import socket
import libssh2
import os

sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect(('localhost', 22))
session = libssh2.Session()
session.startup(sock)
session.userauth_password("test", "test")
channel = session.channel()
channel.execute('ls -al /')

stdout = []
stderr = []
while not channel.eof:
    data = channel.read(1024)
    if data:
        stdout.append(data)

    data = channel.read(1024, libssh2.STDERR)
    if data:
        stderr.append(data)

print (''.join(stdout))
print (''.join(stderr))

Я могу использовать другую библиотеку ssh, если нужно, мне просто понравилась простота идокументирование привязок libssh2 ... Я открыт для других предложений.

1 Ответ

2 голосов
/ 03 октября 2011

Вы можете заглянуть в библиотеку paramiko python.Хорошая запись в блоге с подробностями, со ссылками на различную информацию о питоне: здесь .Я не уверен, как paramiko будет обращаться с контрольными кодами, но в теории это, по крайней мере, позволит вам увидеть их в своих возвращаемых данных.

Если вы проверите раздел документации, касающийся вызова оболочки , это позволит вам установить эмуляцию терминала.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...