All Projects → leffss → django-webssh

leffss / django-webssh

Licence: MIT license
Django+paramiko 实现的 webssh。此项目存在已知BUG,最新请参考:https://github.com/leffss/devops

Programming Languages

javascript
184084 projects - #8 most used programming language
python
139335 projects - #7 most used programming language
CSS
56736 projects

Projects that are alternatives of or similar to django-webssh

Webssh
🌱 Web based ssh client
Stars: ✭ 2,520 (+4321.05%)
Mutual labels:  paramiko
sftpcloudfs
SFTP interface to OpenStack Object Storage (Swift)
Stars: ✭ 37 (-35.09%)
Mutual labels:  paramiko
iCtrl
UofT Engineering Lab Remote
Stars: ✭ 91 (+59.65%)
Mutual labels:  paramiko
django-rok
Public url for your local django web server
Stars: ✭ 19 (-66.67%)
Mutual labels:  paramiko
Rtty
Access your terminal from anywhere via the web.
Stars: ✭ 2,434 (+4170.18%)
Mutual labels:  webssh
Spug
开源运维平台:面向中小型企业设计的轻量级无Agent的自动化运维平台,整合了主机管理、主机批量执行、主机在线终端、文件在线上传下载、应用发布部署、在线任务计划、配置中心、监控、报警等一系列功能。
Stars: ✭ 6,810 (+11847.37%)
Mutual labels:  webssh
xm2cloud term
powerful webssh that developed with django, channels, xterm,ioloop
Stars: ✭ 17 (-70.18%)
Mutual labels:  webssh
GoWebSSH
功能强大,Go 实现的一个WebSSH,支持文件上传下载
Stars: ✭ 112 (+96.49%)
Mutual labels:  webssh
pro.webssh.net
iOS / iPadOS / macOS SSH Client
Stars: ✭ 108 (+89.47%)
Mutual labels:  webssh
seal
django-base-templates 主要为 django 开发DEMO, 支持 非前后端分离 和 前后端分离模式 。
Stars: ✭ 118 (+107.02%)
Mutual labels:  webssh
WebSSH
WebSSH allows you to SSH to your remote host anytime, anywhere.
Stars: ✭ 17 (-70.18%)
Mutual labels:  webssh
django-webssh
django + django_channles 实现的 webssh
Stars: ✭ 71 (+24.56%)
Mutual labels:  webssh

说明

基于 python3.7 + django 2.2.3 实现的 django-webshell,参考 https://github.com/huyuan1999/django-webssh 。在参考项目的基础上做了一些优化:新增前端页面刷新确认页面(刷新会导致 websocket 连接断开)、后端 paramiko 线程创建代码优化、记录命令记录以及结果、支持 zmodem 上传下载文件(rz, sz)。有兴趣的同学可以在此基础上稍作修改集成到自己的堡垒机中。

所需技术:

  • websocket 目前市面上大多数的 webssh 都是基于 websocket 协议完成的
  • django-channels django 的第三方插件, 为 django 提供 websocket 支持
  • xterm.js 前端模拟 shell 终端的一个库
  • paramiko python 下对 ssh2 封装的一个库

如何将所需技术整合起来?

  1. xterm.js 在浏览器端模拟 shell 终端, 监听用户输入通过 websocket 将用户输入的内容上传到 django
  2. django 接受到用户上传的内容, 将用户在前端页面输入的内容通过 paramiko 建立的 ssh 通道上传到远程服务器执行
  3. paramiko 将远程服务器的处理结果返回给 django
  4. django 将 paramiko 返回的结果通过 websocket 返回给用户
  5. xterm.js 接收 django 返回的数据并将其写入前端页面

流程图

启动

pip3 install -r requirements.txt
cd django-webssh/webssh/
python3 manage.py runserver 0.0.0.0:8000

访问:http://127.0.0.1:8000

预览

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].