提供python颜色的ssh网关吗?

2024-05-16 22:26:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用python bindings for 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绑定的简单性和文档。。。我愿意接受其他建议。在


Tags: testimport服务器readdataifsessionstderr
1条回答
网友
1楼 · 发布于 2024-05-16 22:26:29

您可以查看paramiko python库。一篇很好的博客文章是here,里面有各种python信息的链接。我不确定paramiko将如何处理控制代码,但理论上,它至少允许你在它的返回数据中看到它们。在

如果您检查文档中处理invoking a shell的部分,它允许您设置终端模拟。在

相关问题 更多 >