2 votes

passerelle ssh en python - couleurs disponibles ?

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.

2voto

Spencer Rathbun Points 6171

Vous pouvez consulter la bibliothèque python paramiko. Un bon article de blog présentant les détails, avec des liens vers diverses informations sur python, se trouve à l'adresse suivante aquí . Je ne sais pas comment paramiko gère les codes de contrôle, mais en théorie, il vous permettra au moins de les voir dans ses données de retour.

Si vous consultez la section de la documentation traitant des l'invocation d'un shell Il vous permet de définir l'émulation du terminal.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X