SSH 连接
TSH 提供两种 SSH 连接方式:浏览器直连(密码/密钥认证)和本地中继(脚本桥接)。两种方式均支持 SFTP 文件管理。
浏览器直连
无需额外脚本,浏览器直接通过 Cloudflare Worker 代理连接远程 SSH 服务器。
适用场景
- 目标 SSH 服务器具有公网 IP 或域名
- 不想在本地安装任何软件
- 使用密码或粘贴私钥认证
操作步骤
- 在终端中输入
ssh打开连接面板 - 填写连接信息:
- Host — 远程服务器地址(IP 或域名)
- Port — SSH 端口(默认 22)
- Username — 登录用户名
- Auth Mode — 选择认证方式
- 根据认证方式填写:
- Password — 输入密码
- Key — 粘贴私钥内容(支持
-----BEGIN OPENSSH PRIVATE KEY-----等格式)
- 点击 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_HOST | 是 | SSH 目标地址(支持 user@host 格式) |
SSH_PORT | 否 | SSH 端口,默认 22 |
SSH_PASSWORD | 否 | 自动输入密码(避免交互提示) |
SSH_KEY_B64 | 否 | Base64 编码的私钥(自动写入临时文件) |
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 按钮
- 在终端中执行
exit或logout - 关闭连接面板
- 脚本中继模式可按
Ctrl+C终止本地脚本