J'utilise Liaisons python pour libssh2 pour se connecter au serveur SSH2 de manière programmatique. La sortie reçue doit être transmise à un serveur distant et y être affichée.
Le code ci-dessous fonctionne correctement, mais il affiche le résultat en monochrome. Comment puis-je afficher les couleurs ou au moins obtenir les séquences d'échappement du contrôle du terminal VT100, afin de pouvoir les remplacer par des balises 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))
Je peux utiliser une autre bibliothèque ssh si nécessaire, j'ai juste aimé la simplicité et la documentation de libssh2 bindings... Je suis ouvert à d'autres suggestions.