Skip to content

SSH 连接

TSH 提供两种 SSH 连接方式:浏览器直连(密码/密钥认证)和本地中继(脚本桥接)。两种方式均支持 SFTP 文件管理。

浏览器直连

无需额外脚本,浏览器直接通过 Cloudflare Worker 代理连接远程 SSH 服务器。

适用场景

  • 目标 SSH 服务器具有公网 IP 或域名
  • 不想在本地安装任何软件
  • 使用密码或粘贴私钥认证

操作步骤

  1. 在终端中输入 ssh 打开连接面板
  2. 填写连接信息:
    • Host — 远程服务器地址(IP 或域名)
    • Port — SSH 端口(默认 22)
    • Username — 登录用户名
    • Auth Mode — 选择认证方式
  3. 根据认证方式填写:
    • Password — 输入密码
    • Key — 粘贴私钥内容(支持 -----BEGIN OPENSSH PRIVATE KEY----- 等格式)
  4. 点击 Connect 建立连接

认证方式

方式说明安全性
Password输入密码认证密码通过 WebSocket 加密传输
Key粘贴私钥认证私钥仅在浏览器内存中,不上传服务器

连接成功

连接成功后,终端进入远程 Shell 环境,可执行任意命令。断开 SSH 连接后自动返回本地终端。

注意事项

  • 不支持 127.0.0.1 或内网地址(浏览器直连走 Cloudflare 代理,无法访问内网)
  • 不支持非标准 SSH 端口(22 以外的端口可能被网络防火墙拦截)
  • 连接超时默认为 30 秒

本地中继模式

通过本地脚本桥接浏览器和 SSH 服务器,浏览器 → 本地脚本 → SSH 服务器。

适用场景

  • 目标 SSH 服务器在内网(如 192.168.x.x
  • 需要访问本地网络中的服务器
  • 需要使用密钥文件(而非粘贴私钥)

工作原理

浏览器 (xterm.js)
    ↓ WebSocket (127.0.0.1:PORT)
本地中继脚本 (relay-ssh.ps1 / relay-ssh.py)
    ↓ SSH 子进程
远程 SSH 服务器

Windows 使用

点击连接面板中的 Copy 按钮复制 PowerShell 命令,在本地 PowerShell 中执行:

powershell
powershell -NoProfile -c "$env:TSH_T='token';$env:SSH_P=8765;$env:SSH_HOST='user@192.168.1.100';$env:SSH_PORT=22;irm https://look.tsh.qzz.io/relay-ssh.ps1|iex"

命令参数说明:

变量必填说明
TSH_T安全 Token,用于验证连接
SSH_P本地监听端口
SSH_HOSTSSH 目标地址(支持 user@host 格式)
SSH_PORTSSH 端口,默认 22
SSH_PASSWORD自动输入密码(避免交互提示)
SSH_KEY_B64Base64 编码的私钥(自动写入临时文件)

Linux/macOS 使用

bash
curl -s https://look.tsh.qzz.io/relay-ssh.py | TSH_T=token SSH_P=8765 SSH_HOST=user@192.168.1.100 SSH_PORT=22 python3

连接特性

  • 自动密码填充:脚本检测到 password: 提示时自动输入密码
  • 自动重连:浏览器 60 秒内自动重试
  • 双端口隔离SSH_P 用于终端连接,SSH_P+1 用于 SFTP 文件管理

安全说明

  • 脚本仅监听 127.0.0.1,外部网络无法访问
  • 每次连接生成唯一 Token 防止 CSRF
  • 私钥写入临时文件,进程退出后自动删除
  • 数据仅在本机和目标服务器之间传输,不经过第三方

断开连接

  • 点击连接面板中的 Disconnect 按钮
  • 在终端中执行 exitlogout
  • 关闭连接面板
  • 脚本中继模式可按 Ctrl+C 终止本地脚本

基于 MIT 许可证发布