Django使用Channels实现WebSSH网页终端,实现SSH堡垒机雏形

如题所述

第1个回答  2022-06-02

更多内容请点击 我的博客 查看,欢迎来访。

本教程基于《Django使用Channels实现WebSocket消息通知功能》

xterm.js : 前端模拟 shell 终端的一个库,当用户每输入一个键,就向后端发送该数据

paramiko : Python 下对 ssh2 封装的一个库,可以使用他来远程连接主机

创建app。名为 webssh

将应用添加到 settings.py

修改应用下的 apps.py

修改应用下的 __init__.py

访问 http://127.0.0.1/webssh/ 可以连接到主页

apps/webssh/consumers.py

apps/webssh/routing.py

合并多个应用的url

遇到的问题:用协作连接时,用户加入到一个通道组,往这个通道组发送命令,这个通道所有用户都能收到,来实现协作的功能,但是从 self.ssh_channel 接收返回的数据,可能会存在和预想的不同,特别是 top 命令。示例如下,不知道怎么解决了!!!

参考链接: https://github.com/huyuan1999/django-webssh

https://www.cnblogs.com/52op/articles/9327733.html 【gevent库】

相似回答
大家正在搜