WebSSH 浏览器 SSH 客户端

WebSSH 是一个基于 Python 的 Web SSH 客户端,让你可以直接在浏览器中通过 SSH 协议连接到远程服务器。与 GoTTY 和 TTYD 不同,WebSSH 提供了一个完整的 SSH 连接界面,支持密码和密钥认证,可以连接任意 SSH 服务器。将 WebSSH 部署在搬瓦工 VPS 上,可以在任何有浏览器的设备上管理你的服务器集群。

一、安装 WebSSH

1.1 安装依赖

apt update && apt upgrade -y
apt install python3 python3-pip python3-venv -y

1.2 创建环境并安装

mkdir -p /opt/webssh && cd /opt/webssh
python3 -m venv venv
source venv/bin/activate
pip install webssh

验证安装:

wssh --version

二、基本使用

2.1 启动 WebSSH

wssh --address=0.0.0.0 --port=8888

在浏览器中访问 http://YOUR_VPS_IP:8888,会看到一个 SSH 登录界面,填写目标服务器的 IP、端口、用户名和密码即可连接。

2.2 使用 URL 参数预填信息

# 浏览器中访问以下 URL 可以预填连接信息
http://YOUR_VPS_IP:8888/?hostname=target-server.com&username=root&port=22

三、安全配置

3.1 绑定本地地址

建议将 WebSSH 绑定到本地地址,通过 Nginx 反向代理对外提供服务:

wssh --address=127.0.0.1 --port=8888

3.2 限制允许连接的主机

# 只允许连接指定的 SSH 服务器
wssh --address=127.0.0.1 --port=8888 \
  --known-hosts=/etc/webssh/known_hosts

3.3 配置 HTTPS

wssh --address=0.0.0.0 --port=8888 \
  --certfile=/etc/letsencrypt/live/your-domain.com/fullchain.pem \
  --keyfile=/etc/letsencrypt/live/your-domain.com/privkey.pem

四、Nginx 反向代理

cat > /etc/nginx/sites-available/webssh <<'EOF'
server {
    listen 443 ssl http2;
    server_name ssh.your-domain.com;

    ssl_certificate /etc/letsencrypt/live/ssh.your-domain.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/ssh.your-domain.com/privkey.pem;

    # 基本认证保护
    auth_basic "WebSSH Access";
    auth_basic_user_file /etc/nginx/.htpasswd;

    location / {
        proxy_pass http://127.0.0.1:8888;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_read_timeout 86400s;
    }
}
EOF

# 创建认证文件
apt install apache2-utils -y
htpasswd -bc /etc/nginx/.htpasswd admin YourStrongPassword

ln -sf /etc/nginx/sites-available/webssh /etc/nginx/sites-enabled/
nginx -t && systemctl reload nginx

五、使用 systemd 管理

cat > /etc/systemd/system/webssh.service <<'EOF'
[Unit]
Description=WebSSH Service
After=network.target

[Service]
Type=simple
User=root
WorkingDirectory=/opt/webssh
ExecStart=/opt/webssh/venv/bin/wssh --address=127.0.0.1 --port=8888 --log-file-prefix=/var/log/webssh.log
Restart=always
RestartSec=5
Environment=PYTHONUNBUFFERED=1

[Install]
WantedBy=multi-user.target
EOF

systemctl daemon-reload
systemctl enable webssh
systemctl start webssh

管理命令:

systemctl status webssh
systemctl restart webssh
journalctl -u webssh -f

六、Docker 部署

6.1 简单部署

docker run -d --name webssh \
  -p 8888:8888 \
  --restart always \
  snsyzb/webssh

6.2 Docker Compose 部署

mkdir -p /opt/webssh-docker && cd /opt/webssh-docker
cat > docker-compose.yml <<'EOF'
version: '3.8'

services:
  webssh:
    image: snsyzb/webssh
    container_name: webssh
    restart: always
    ports:
      - "127.0.0.1:8888:8888"
    environment:
      - TZ=Asia/Shanghai
EOF

docker compose up -d

七、高级功能

7.1 SSH 密钥认证

WebSSH 的登录界面支持上传 SSH 私钥文件进行密钥认证。在连接表单中选择私钥文件并填写对应的密码短语(如果有)即可。

7.2 自定义终端大小

WebSSH 会自动根据浏览器窗口大小调整终端尺寸。通过拖动浏览器窗口即可改变终端大小。

7.3 文件传输

虽然 WebSSH 本身不提供图形化的文件传输功能,但你可以在终端中使用 scpsftp 命令进行文件传输。

八、与其他 Web 终端工具对比

  • WebSSH vs GoTTY:WebSSH 是完整的 SSH 客户端,可以连接任意服务器;GoTTY 只能共享本机终端。
  • WebSSH vs TTYD:同上,WebSSH 支持远程 SSH 连接;TTYD 仅用于本机终端共享。
  • WebSSH vs Teleport:Teleport 是企业级访问管理平台,功能更完善但部署更复杂。

九、常见问题

连接超时

检查目标服务器的 SSH 服务是否正常运行,以及防火墙是否允许 SSH 连接:

# 在 WebSSH 所在服务器上测试
ssh -v root@target-server.com -p 22

终端中文显示乱码

确保目标服务器设置了正确的 locale:

export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8

总结

WebSSH 是一款实用的浏览器 SSH 客户端,部署在搬瓦工 VPS 上可以随时随地通过浏览器管理你的服务器。建议配合 Nginx 反向代理和基本认证使用,增强安全性。选购搬瓦工 VPS 请参考 全部方案,购买时使用优惠码 NODESEEK2026 可享受 6.77% 折扣。相关工具:GoTTY 教程TTYD 教程Teleport 教程

关于本站

搬瓦工VPS中文网(bwgvps.com)是非官方中文信息站,整理搬瓦工的方案、优惠和教程。我们不销售主机,不提供技术服务。

新手必读
搬瓦工优惠码

NODESEEK2026(优惠 6.77%)

购买时填入即可抵扣。