webssh:可以用浏览器连接的ssh终端

Linux1年前 (2023)更新 huiye
103 0

导航:

第一章:webssh简介 

第二章:快速安装

第三章:其他参数

第四章:使用nginx代理

一、webssh简介:

这是一个基于tornado、paramiko和xterm.js开发,python语言编写的web应用程序,可以用作ssh客户端连接到Linux服务器

项目地址:https://github.com/huashengdun/webssh

环境要求:Python 2.7/3.4+(此文章不做python环境安装介绍)

运作方式:

+---------+     http     +--------+    ssh    +-----------+
| browser | <==========> | webssh | <=======> | ssh server|
+---------+   websocket  +--------+    ssh    +-----------+

二、快速安装

step1:安装
# pip install webssh 或 pip3 install webssh
step2:启动服务
# wssh
step3:浏览器访问(默认端口为8888,需要在防火墙中开放此端口或关闭防火墙):http://ip:8888

注意:通常情况下会拒绝来公网的http请求,http访问会显示403 Forbidden,启动服务时可以加上如下参数来开启http访问

# wssh --fbidhttp=False

网络页面如下,支持秘钥登录

webssh:可以用浏览器连接的ssh终端

这里贴一个已经部署好的测试链接:https://ssh.huiyex.top

三、其他参数

# 启动http服务时,指定监听地址和端口
wssh --address='0.0.0.0' --port=8000

# 启动https服务时,指定ssl证书、私钥路径、ssl
wssh --certfile='/path/to/cert.crt' --keyfile='/path/to/cert.key' --sslport=4433

# 拒绝不在known_hosts上的主机连接;这个文件路径一般是~/.ssh/known_hosts或/root/.ssh/known_hosts
wssh --policy=reject

# 设置日志等级为debug
wssh --logging=debug

# 指定日志文件
wssh --log-file-prefix=main.log

# 帮助
wssh --help

# 允许公网http访问
wssh --fbidhttp=False

四、使用nginx代理(非必须)

# wssh --address='127.0.0.1' --port=8888 --policy=reject

#nginx配置示例
location / {
    proxy_pass http://127.0.0.1:8888;
    proxy_http_version 1.1;
    proxy_read_timeout 300;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_set_header Host $http_host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Real-PORT $remote_port;
}

注: 为了安全考虑,部署时建议使用 SSL 加密,且设置 policy为reject,拒绝不在 known_hosts上的主机连接。

© 版权声明

相关文章