2011-10-03 3 views
2

python bindings for libssh2을 사용하여 프로그래밍 방식으로 SSH2 서버에 연결합니다. 수신 된 출력은 원격 서버로 전달되어 거기에 표시되어야합니다.파이썬에서 ssh 게이트웨이 - 색상을 사용할 수 있습니까?

아래 코드는 올바르게 작동하지만 흑백으로 결과를 표시합니다. 색상을 표시하거나 최소한 VT100 터미널 제어 이스케이프 시퀀스를 가져와 HTML 태그로 대체 할 수 있습니까? 필요한 경우 내가 다른 ssh를 라이브러리를 사용할 수 있습니다

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)) 

, 나는 그냥 단순하고 libssh2 바인딩의 문서 ... 나는 다른 제안 오픈 오전 좋아했다.

답변

2

paramiko python 라이브러리를 살펴볼 수 있습니다. 자세한 내용을 살펴보고 다양한 파이썬 정보에 대한 링크가있는 좋은 블로그 게시물은 here입니다. paramiko가 제어 코드를 처리하는 방법을 잘 모르겠지만 이론적으로는 적어도 리턴 데이터에서 볼 수 있습니다.

invoking a shell을 다루는 문서 섹션을 확인하면 터미널 에뮬레이션을 설정할 수 있습니다.

+0

고마워 스펜서, 그게 내가 찾고 있던 바로 그거야! :) – johndodo