资料参考地址https://juejin.cn/post/7173654250194403364
https://blog.csdn.net/Ber_Bai/article/details/127803210
github项目地址:https://github.com/huashengdun/webssh
实战搭建
分为真机和docker环境搭建,真机的话是需要python 3.10及以上环境的,测试环境3.10.12,而搭建的源码默认关了http,所以搭建好会直接报错error:webssh Public plain http request is forbidden.
error:webssh Public plain http request is forbidden.
这个时候需要用命令行执行命令才行,docker则提前改文件然后编译
真机搭建
方式一:在线安装
通过pip安装webssh
pip install webssh
方式二:离线安装(推荐)
通过git或下载离线包方式,将源码下载至本地
# 下载源码
git clone https://github.com/huashengdun/webssh.git
# 进入目录
cd webssh
# 安装wenssh
python setup.py install
如果环境中没有libffi等包,先通过以下指令安装
deban/ubantu等系统命令:
sudo apt-get install build-essential libssl-dev libffi-dev python-dev
centos命令
sudo yum groupinstall "Development Tools"
sudo yum install gcc libffi-devel zlib-devel bzip2-devel readline-devel sqlite-devel curl-devel
启动webssh
wssh
出现[I 221111 11:26:57 main:39] Listening on :8888 (http)提示表示已经启动成功了
访问wenssh

使用
后台启动
nohup wssh --fbidhttp=False &
8888端口占用
通过lsof指令查看端口占用情况
lsof -i:8888
再通过kill指令杀死进程
kill -9 pid # pid为对应的端口号
访问403
error:webssh Public plain http request is forbidden.
wssh拦截了http请求,通过--fbidhttp=False参数开放http请求
wssh --fbidhttp=False
在iframe中使用
若出现"XSRF cookie does not match POST argument"提示,通过添加参数wssh --xsrf=False禁用XSRF。
wssh --xsrf=False
通过get请求实现自动登录
访问http://ip:8888/?hostname=服务器地址&username=账号&password=base64加密后的密码&port=端口

改变背景色和字体颜色
通过请求访问时,可以增加#fontcolor=black&bgcolor=white参数。访问http://ip:8888/#fontcolor=black&bgcolor=white
docker搭建
下载源码
# 下载源码
git clone https://github.com/huashengdun/webssh.git
# 进入目录
cd webssh
修改源码
1、修改/webssh/settings.py,第35行define('fbidhttp', type=bool, default=True中的True改成False即:define('fbidhttp', type=bool, default=False 2、同理修改第38行define('xsrf', type=bool, default=True的True改成False```
第一个必须改,不然编译后http打开就是403的,最开始我以为是没搭建好,折腾很久,这是个坑
编译源码
# 进入目录
cd webssh
# 在项目目录下执行以下命令,使用 Docker Compose 构建并启动容器
docker-compose up --build


