Appearance
tssh — 比 OpenSSH 更好用的 SSH 客户端
tssh(trzsz-ssh)是一个完全兼容 OpenSSH 的 SSH 客户端替代品,在保持零学习成本的前提下,提供了服务器搜索、密码记忆、文件传输、批量登录、UDP 弱网模式等一系列开发者高频刚需功能。
为什么需要 tssh?
日常用 SSH 管理服务器,你是不是也踩过这些坑?
- 服务器一多,别名记不住 — 每次都要翻
.ssh/config - 有些机器只能用密码登录 — OpenSSH 原生不支持记住密码
- 传文件要另开 SFTP 窗口 — 来回切换很烦
- 要同时登录一批机器执行命令 — 只能手动一个个连
- Wi-Fi 切换或休眠唤醒就断连 — 会话全丢,心态爆炸
tssh 就是为了解决这些问题而生。
核心特性一览
| 特性 | 说明 |
|---|---|
| 内置 TUI 登录界面 | 搜索、选择服务器,不用记别名 |
| 记住密码 | 加密存储密码、私钥 passphrase、自动交互 |
| 文件传输 | 内置 trzsz/rz/sz,拖拽上传下载,无需另开窗口 |
| 批量登录 | 多选服务器,分屏/新 Tab/新窗口同时登录 |
| UDP 弱网模式 | 配合 tsshd,切换网络、休眠唤醒不掉线 |
| 完全兼容 OpenSSH | 配置、参数、密钥文件全部通用,零迁移成本 |
| 跨平台 | Linux / macOS / Windows / ChromeOS |
| 自动交互 | 类似 expect,支持 TOTP、动态密码、条件分支 |
安装方法
Linux
Ubuntu / Debian(添加 PPA):
bash
sudo apt update && sudo apt install software-properties-common
sudo add-apt-repository ppa:trzsz/ppa && sudo apt update
sudo apt install tsshFedora / CentOS / RHEL:
bash
sudo dnf copr enable @trzsz/trzsz
sudo dnf install tsshArchLinux:
bash
yay -S tssh直接下载 deb/rpm 包安装:
从 GitHub Releases 或 Gitee 发行版 下载对应包:
bash
sudo dpkg -i tssh_*.deb # Debian/Ubuntu
sudo rpm -i tssh_*.rpm # Fedora/CentOSmacOS
bash
brew install trzsz-sshWindows
bash
scoop install tssh # 推荐
winget install tssh # 或
choco install tssh # 或Go 直接安装
bash
go install github.com/trzsz/trzsz-ssh/cmd/tssh@latest快速上手
1. 配置服务器
tssh 直接复用 ~/.ssh/config,和 OpenSSH 共享配置:
ini
Host my-server
HostName 192.168.1.100
User root
Port 222. 启动 TUI 登录界面
直接运行:
bash
tssh
- 按
/搜索服务器 - 按
↑/↓或j/k选择 - 按
Enter登录
3. 记住密码
有些服务器只能用密码登录,tssh 可以加密记住:
bash
tssh --enc-secret
# 输入密码,得到一串密文然后在配置中写入:
ini
Host my-server
#!! encPassword 756b17766f45bdc44c37f811db9990b0880318d5f00f6531b15e068ef1fde2666550#!! 前缀的作用:tssh 会识别它为有效配置,而标准 ssh 会把它当成注释,互不冲突。
4. 文件传输
登录后直接使用 trz 上传、tsz 下载:
bash
# 上传
trz
# 下载指定文件
tsz /path/to/file拖拽文件到终端窗口也能上传(需配置 EnableDragFile yes)。
TUI 登录界面详解
无参数运行 tssh 即打开 TUI 登录界面,支持丰富的快捷键:
| 操作 | 快捷键 | 说明 |
|---|---|---|
| 确认登录 | Enter | 登录当前选中的服务器 |
| 退出 | Ctrl+C / Ctrl+Q / q | 退出 TUI |
| 上移 | ↑ / Ctrl+K / k | 往上移动光标 |
| 下移 | ↓ / Ctrl+J / j | 往下移动光标 |
| 翻页 | PageUp / Ctrl+B / b | 上一页 |
| 翻页 | PageDown / Ctrl+F / f | 下一页 |
| 搜索 | / | 切换搜索模式 |
| 多选 | Space / Ctrl+X / x | 选中/取消当前服务器 |
| 全选 | Ctrl+A / a | 全选当前页 |
| 反选 | Ctrl+O / o | 反选当前页 |
| 新窗口登录 | Ctrl+W / w | 批量登录到新窗口 |
| 新 Tab 登录 | Ctrl+T / t | 批量登录到新标签 |
| 分屏登录 | Ctrl+P / p | 批量分屏登录 |
主题风格
在 ~/.tssh.conf 中配置主题:
ini
PromptThemeLayout = simple # tiny | simple | table支持自定义颜色,例如:
json
PromptThemeColors = {"active_host": "magenta|bold", "inactive_host": "magenta"}记住密码与自动交互
记住密码
除了上文用 #!! encPassword 加密存储,也支持明文:
ini
Host test*
Password 111111建议设置配置文件权限:
chmod 600 ~/.ssh/config ~/.ssh/password
记住私钥 Passphrase
ini
Host my-server
IdentityFile /path/to/id_rsa
#!! encPassphrase 6f419911555b0cdc84549ae791ef69f654118d734bb4351de7e83163726ef46d176a自动交互(类似 expect)
适合 Complex 登录场景(跳板机、MFA 等):
ini
Host auto
#!! ExpectCount 2
#!! ExpectTimeout 30
#!! ExpectPattern1 *assword
#!! ExpectSendPass1 d7983b4a8ac204bd... # tssh --enc-secret 生成的密文
#!! ExpectPattern2 hostname*$
#!! ExpectSendText2 echo welcome\\rTOTP 双因子认证
ini
Host totp-server
#!! ExpectCount 1
#!! ExpectPattern1 token:
#!! ExpectSendTotp1 xxxxx # TOTP Secret(扫二维码获得)外部密码管理器
支持对接 gopass、pass、1Password、Bitwarden、macOS 钥匙串等:
ini
Host server1
#!! PasswordCommand gopass show -o ssh/%n
Host server2
#!! PasswordCommand op read "op://Vault/ssh-%n/password"文件传输
trzsz(推荐)
服务器需安装 trzsz。tssh 支持以下方式:
拖拽上传: 在 ~/.ssh/config 中配置:
ini
Host *
EnableDragFile yes命令行上传/下载:
bash
# 上传文件到服务器
tssh --upload-file /path/to/file1 --upload-file /path/to/dir2 myserver 'trz -d /tmp/'
# 从服务器下载文件
tssh -t --client --download-path /tmp/ myserver 'tsz -d /path/to/file1'scp/sftp 集成
使用 -S tssh 让 scp/sftp 也享受记忆密码和 UDP 通道:
bash
alias tscp='scp -S tssh'
alias tsftp='sftp -S tssh'批量登录
适用于 tmux、iTerm2、Windows Terminal:
- 在 TUI 界面用
Space多选服务器 - 按
p分屏登录、w新窗口、t新 Tab
批量执行命令:
bash
tssh -t -o RemoteCommand='ping -c3 example.com ; bash -l'UDP 弱网模式
配合服务端 tsshd,实现类似 mosh 的会话保持能力,且完整支持 SSH 端口转发和 ProxyJump。
服务端安装 tsshd:
bash
tssh --install-tsshd myserver客户端连接:
bash
tssh --udp myserver或者在配置中启用:
ini
Host myserver
#!! UdpMode yesUDP 模式下,切换 Wi-Fi、笔记本合盖唤醒都不会断连,尤其适合移动办公场景。
个性配置
所有个性配置集中在 ~/.tssh.conf:
ini
# SSH 配置路径
ConfigPath = ~/.ssh/config
# 扩展配置路径(放密码等敏感信息)
ExConfigPath = ~/.ssh/password
# 默认上传/下载路径
DefaultUploadPath = ~/Downloads
DefaultDownloadPath = ~/Downloads
# 拖拽上传命令
DragFileUploadCommand = trz -y
# 进度条颜色
ProgressColorPair = B14FFF 00FFA3
# 主题
PromptThemeLayout = simple
# 每页显示的服务器数
PromptPageSize = 10
# 默认进入搜索模式
PromptDefaultMode = search
# 自定义光标和选中图标
PromptCursorIcon = 🧨
PromptSelectedIcon = 🍺
# 终端标题显示 RTT
SetTerminalTitle = rtt
# 使用 ssh -G 解析 OpenSSH 配置(支持 Match 规则)
UseOpenSSHConfig = yes分组标签
服务器太多时,用分组标签快速筛选:
ini
Host web-*
#!! GroupLabels web production
Host db-*
#!! GroupLabels database production
Host dev-*
#!! GroupLabels dev在 TUI 中按 / 输入标签名,回车锁定,即可只显示该组的服务器。
实用小技巧
一键安装服务器端工具
bash
tssh --install-trzsz myserver # 安装 trzsz 文件传输
tssh --install-tsshd myserver # 安装 tsshd UDP 服务快速添加新服务器
bash
tssh --new-host在 TUI 界面填写信息,保存后可立即登录。
DNS SRV 支持
家里多台机器共享一个公网 IP?配置 SRV 记录:
ini
Host myserver
#!! DnsSrvName myhost.mydomain.com替换默认 ssh
想直接用 ssh 命令享受 tssh 的功能:
bash
sudo ln -sv $(which tssh) /usr/local/bin/ssh之后 ssh 就是 tssh,所有参数和配置不变。
写在最后
tssh 完全开源(MIT 协议),Go 语言编写,单一二进制分发,无外部依赖。它的设计哲学是"渐进增强"——你完全不需要改变现有工作流,直接把它当成 ssh 用就好。当需要更多功能时,tssh 随时 ready。
推荐
如果你管理 5 台以上服务器、或者遇到过"密码记不住、断了连不上、传文件麻烦"这些场景,tssh 值得一试。
- GitHub:https://github.com/trzsz/trzsz-ssh
- 官方文档:https://trzsz.github.io/cn/tssh
- QQ 群:318578930
