Termius
介绍 Termius 这款跨平台 SSH 客户端与远程主机管理器:核心模型(Vault/Group/Host/Keychain)、从零配置、SFTP 与端口转发、安全实践和常见连接排查,以及与 WindTerm 的取舍。
[!info] related notes
Termius
[!abstract] 一句话理解 Termius 是一个以 SSH 为核心,把主机、凭据、文件传输、端口转发、常用命令和多设备同步统一起来的远程基础设施管理工具。
它不发明新的 Linux Shell,也不会让 SSH 协议本身变快;它主要解决的是:
服务器多了以后,地址、密钥、账号、隧道、常用命令和设备之间越来越难管理的问题。

1. Termius 是什么?
传统方式连接服务器时,通常需要打开终端并执行:
ssh -i ~/.ssh/id_ed25519 -p 22 root@203.0.x.x
当只有一台服务器时,这种方式很直接。
但当服务器逐渐增加,用户需要同时管理:
- IP 地址与域名
- SSH 端口
- 登录用户名
- 私钥与密码
- 跳板机
- 代理设置
- 端口转发
- SFTP 文件
- 常用排障命令
- 不同环境和设备上的配置
Termius 将这些内容组织为可复用、可搜索的对象:
Vault
├── Group
│ ├── Host
│ │ ├── SSH 配置
│ │ ├── Identity / Key
│ │ ├── Jump Host
│ │ └── Tags
│ └── Host
├── Snippets
├── Port Forwarding
├── Known Hosts
└── Logs
官方对它的定位是:
面向生产力与协作的现代 SSH 客户端。
它支持 Windows、macOS、Linux、iOS 和 Android,因此尤其适合需要在电脑与手机之间切换的开发者、运维人员和 HomeLab 用户。
2. Termius 的历史
Termius 的官方时间线可以概括为:
| 时间 | 事件 |
|---|---|
| 2011 | 应用首次发布 |
| 2019 年 11 月 | Termius 公司成立 |
| 2019 年 12 月 | 进入 Y Combinator 加速器 |
| 2020 年 5 月 | 获得投资 |
| 2022 年 11 月 | 公司实现盈利 |
Termius 的产品理念来自一个很直接的判断:
传统 SSH 客户端长期停留在“输入连接字符串并打开终端”的阶段,而其他开发工具已经逐渐具备项目化管理、同步、协作和自动化能力。
因此,Termius 的演化方向并不是只做一个更漂亮的终端,而是把 SSH 客户端逐渐扩展成:
远程终端
+ 主机资产库
+ 凭据管理
+ SFTP
+ 网络隧道
+ 命令自动化
+ 多设备同步
+ 团队协作
3. Termius 解决了哪些问题?
3.1 不再反复输入 IP、端口和用户名
传统连接:
ssh -i ~/.ssh/oracle.pem -p 22 ubuntu@129.225.x.x
Termius 中只需提前建立一个 Host:
Label: oracle-korea
Address: 129.225.x.x
Port: 22
Username: ubuntu
Key: oracle.pem
之后点击 Host 即可连接。
3.2 避免同一份凭据被复制到许多主机配置中
假设 8 台服务器都使用同一个账号和密钥。
传统 GUI 客户端可能让你在 8 个会话中分别配置一次。密钥变化后,还要修改 8 次。
Termius 可以建立一个 Identity:
Identity: cloud-ubuntu
├── Username: ubuntu
├── SSH Key: cloud_ed25519
└── Password: optional
然后让多个 Host 或整个 Group 复用它。
[!tip] Identity 的价值 主机描述“连接到哪里”,Identity 描述“以谁的身份连接”。
将两者分开后,凭据变化只需要修改一处。
3.3 解决不同设备之间的配置迁移问题
普通 SSH 配置通常散落在:
~/.ssh/config
~/.ssh/id_ed25519
~/.ssh/known_hosts
换电脑时需要手动迁移,手机端又需要重新录入。
Termius Pro 的 Personal Cloud Vault 可以同步:
- Hosts
- Groups
- Keys
- Identities
- Snippets
- Port Forwarding rules
- Known Hosts
因此在 Windows 上添加主机后,登录同一账号的手机和其他电脑也可以看到对应配置。
3.4 把远程文件传输从命令变成文件管理器
传统方式:
scp ./docker-compose.yml root@server:/opt/app/
或者:
sftp root@server
Termius 提供图形化 SFTP,适合:
- 上传配置文件
- 下载日志
- 修改较小的文本文件
- 在本地与远程目录间拖放文件
- 临时查看目录结构
[!warning] SFTP 适合文件管理,不等于部署系统。
可重复部署仍应优先使用 Git、Docker、Ansible、CI/CD 或脚本。
3.5 保存和复用常用命令
经常执行的命令可以保存为 Snippet:
docker compose ps
journalctl -u caddy --since "30 minutes ago" --no-pager
ss -lntp
df -h && free -h
这样可以减少:
- 重复输入
- 命令记忆负担
- 手机输入长命令的困难
- 复制错误
3.6 图形化管理 SSH 隧道
Termius 可以保存本地、远程和动态端口转发规则,避免每次手动输入长命令。
例如访问仅监听服务器本机的数据库:
ssh -L 5433:127.0.x.x:5432 user@server
可以保存为:
Name: PostgreSQL Dev
Local port: 5433
Destination: 127.0.x.x:5432
Via host: dev-server
以后直接启用规则即可。
4. 核心概念
4.1 Vault:最高层的数据容器
Vault 用来存放:
- Hosts
- Groups
- Keys
- Identities
- Snippets
- Port Forwarding
- Known Hosts
可以把 Vault 理解为:
一个经过加密的 SSH 资产库。
常见类型:
| Vault | 用途 |
|---|---|
| Local Vault | 仅保存在当前设备 |
| Personal Vault | 个人云同步 |
| Team Vault | 与团队成员共享 |
适合个人用户的结构:
Personal Vault
├── Cloud
├── HomeLab
├── Temporary
└── Archived
[!warning] 加密密码 Termius 官方说明,Personal Vault 的加密密码不会随数据一同保存,也不会发送给服务端。
丢失加密密码后,Vault 数据可能无法恢复,因此应安全保存恢复信息。
4.2 Group:对主机进行分组并继承配置
Group 可以按照以下维度组织:
- 云厂商
- 地区
- 环境
- 项目
- 客户
- 网络位置
适合你的示例:
Cloud
├── Azure
│ ├── azure-korea
│ ├── azure-japan
│ └── azure-hongkong
├── DigitalOcean
│ └── do-america
└── Aliyun
└── aliyun-chengdu
HomeLab
├── PVE
├── RouterOS
├── ImmortalWrt-1
├── ImmortalWrt-2
└── Debian-Services
Group 还可以让其中的 Host 继承部分配置,例如:
Group: Azure
Username: ubuntu
Port: 22
Identity: azure-default
4.3 Host:一台远程设备的抽象
Host 不只是一个 SSH 连接字符串,而是对一台远程设备的描述。
通常包含:
Label
Address
Port
Username / Identity
SSH Key
Tags
Jump Host
Proxy
Startup Snippet
同一台机器也可以对应不同访问方式。
例如:
Host: RouterOS
├── SSH: 192.168.x.x:22
└── Tags: homelab, router, lan
4.4 Keychain:凭据中心
你截图中的 Keychain 页面用于管理认证材料。
顶部可以看到:
- New key
- Certificate
- Windows Hello
- FIDO2
Keychain 主要管理:
SSH Key
由私钥和公钥组成:
Private key:保存在客户端,绝不能上传到服务器
Public key:放入服务器 ~/.ssh/authorized_keys
Identity
可以组合:
Username
Password
SSH Key
Certificate
FIDO2 key
然后绑定给 Host 或 Group。
Certificate
用于 SSH 证书认证场景,通常出现在集中式基础设施或企业环境中。
Windows Hello
在支持的 Windows 环境中,可以借助系统生物识别或 PIN 保护认证流程。
FIDO2
通过硬件安全密钥等方式完成更强的认证,适合对私钥防复制和抗钓鱼有更高要求的场景。
5. 界面中的主要模块
根据当前桌面端界面,左侧主要包括:
| 模块 | 用途 | 解决的问题 |
|---|---|---|
| Hosts | 保存和组织远程主机 | 不再重复输入地址和参数 |
| Keychain | 管理 Key、Identity、Certificate、FIDO2 | 凭据集中复用 |
| Port Forwarding | 保存 SSH 隧道 | 避免反复输入转发命令 |
| Snippets | 保存常用命令 | 降低重复操作和输入错误 |
| Known Hosts | 管理服务器主机指纹 | 防止连接到被冒充的主机 |
| Logs | 查看连接和终端记录 | 排查历史操作与连接问题 |
| SFTP | 图形化文件传输 | 方便上传配置和下载日志 |
| Vaults | 管理本地、个人或团队数据 | 同步、隔离和授权 |
顶部的 + 通常用于新建连接或工作项,终端连接后可以通过标签页和 Workspace 组织多个会话。
6. 从零开始使用 Termius
6.1 安装
桌面平台:
- Windows
- macOS
- Linux
移动平台:
- iOS
- Android
[!tip] 官方文档建议桌面端优先安装官网版本。部分应用商店或沙盒版本可能无法使用本地终端或 SFTP 本地存储访问等完整功能。
6.2 领取 GitHub 学生权益
拥有有效的 GitHub Student Developer Pack 后,可以关联 GitHub 账号获取学生权益。
当前学生权益包括:
- Termius Pro 功能
- Termius Team 功能
- 跨桌面与移动设备同步
- Personal Cloud Vault
- Snippets Automation
- Log Bookmarks
- Team Vault
- 实时协作
正常商业套餐中,Pro 和 Team 是收费能力;学生包的主要价值不是“才能使用 SSH”,而是免费获得云同步、移动端和团队功能。
6.3 创建或导入 SSH Key
进入:
Vaults → Keychain → New key
通常有两种方式。
方式一:导入已有私钥
例如已有:
C:\Users\baker\.ssh\oracle.pem
或:
~/.ssh/id_ed25519
导入后填写:
Label: oracle-key
Private key: 私钥内容
Passphrase: 私钥口令(如有)
[!danger] 不要混淆
.pub是公钥,通常用于放到服务器。
Termius 客户端连接时需要的是私钥文件,而不是.pub文件。
方式二:在 Termius 中生成新密钥
推荐优先选择现代算法,例如 Ed25519。
生成后:
- 私钥保留在 Keychain。
- 复制公钥。
- 把公钥追加到服务器用户的
authorized_keys。
服务器端执行:
mkdir -p ~/.ssh
chmod 700 ~/.ssh
nano ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
把完整公钥粘贴为一行,例如:
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAA... device-name
确认目录归属:
chown -R "$(id -un)":"$(id -gn)" ~/.ssh
6.4 建立 Identity
进入:
Keychain → New key 右侧下拉菜单 → New Identity
填写:
Label: digitalocean-root
Username: root
Key: do-ed25519
Password: optional
创建 Identity 的好处是:
- Host 不再直接绑定零散用户名和密钥
- 多台主机可以复用
- 换密钥时只修改一次
- 可以让 Group 统一继承
6.5 添加 Host
进入:
Hosts → New Host
填写基础信息:
Label: do-america
Address: example.com 或服务器 IP
Port: 22
Username: root
Credentials from: Personal Vault
Key / Identity: digitalocean-root
建议增加 Tags:
digitalocean
america
production
docker
第一次连接时,需要确认服务器 Host Key 指纹。
[!important] Host Key 的意义 SSH Key 用于证明“你是谁”;
Host Key 用于证明“服务器是谁”。首次连接时应核对指纹。服务器重装后指纹变化是正常可能性之一,但也需要警惕中间人攻击。
6.6 连接服务器
保存 Host 后,点击对应主机即可连接。
连接成功后,你进入的是远程服务器提供的 Shell,例如:
bash
zsh
fish
RouterOS CLI
Termius 负责的是:
建立 SSH 连接
+ 显示终端
+ 管理配置
它并不会改变服务器实际运行的 Shell。
6.7 使用 SFTP
连接主机后进入 SFTP,可以浏览远程目录。
常见操作:
上传 docker-compose.yml
下载 nginx 日志
重命名配置文件
新建目录
查看文件属性
如果普通用户无权写入 /etc,可以先上传到:
/tmp
/home/username
然后在终端中执行:
sudo mv ~/nginx.conf /etc/nginx/nginx.conf
6.8 创建 Port Forwarding
Local Forwarding:访问远程内网服务
场景:远程 PostgreSQL 仅监听 127.0.x.x:5432。
Local: 127.0.x.x:5433
Remote target: 127.0.x.x:5432
Via: database-server
本地应用连接:
127.0.x.x:5433
等价命令:
ssh -L 5433:127.0.x.x:5432 user@server
Remote Forwarding:把本地服务暴露给远程端
等价形式:
ssh -R 8080:127.0.x.x:3000 user@server
Dynamic Forwarding:建立 SOCKS 代理
等价形式:
ssh -D 1080 user@server
[!warning] 端口转发会扩展网络可达范围。
不要随意监听0.0.x.x,优先绑定127.0.x.x,并检查服务器的GatewayPorts等配置。
6.9 创建 Snippets
建议按用途分组。
系统状态
uptime
df -h
free -h
端口与进程
ss -lntp
ps aux --sort=-%mem | head
Docker
docker compose ps
docker compose logs --tail=200
docker system df
systemd
systemctl --failed
journalctl -p err -b --no-pager
[!danger] 不要把高风险命令做成可误触的一键 Snippet,例如:
rm -rf / docker system prune -af对删除、清库、覆盖配置等命令应保留人工确认。
7. 推荐的个人配置方案
[!note] 字段对应实际界面 Termius 的 Vault 下,左侧一级模块是 Hosts / Keychain / Snippets / Port Forwarding(以及 Known Hosts、Logs)。
- Groups 不是一级模块,而是 Hosts 内部用来把主机分组、并让子主机继承配置的机制;
Cloud、HomeLab是两组顶级分组。- Identities 也不是一级模块,而是 Keychain 内部的一种凭据条目(Keychain 还管理 Keys、Certificates、FIDO2)。
对于多云服务器和 HomeLab,可以使用以下结构:
Personal Vault
├── Hosts ← 左侧 Hosts 模块,按 Group 组织
│ ├── Cloud ← 顶级分组:云服务器
│ │ ├── Azure ← 子分组(也可直接放 Host)
│ │ ├── DigitalOcean
│ │ └── Aliyun
│ └── HomeLab ← 顶级分组:家庭实验室
│ ├── Hypervisor
│ ├── Router
│ └── Services
├── Keychain ← 左侧 Keychain 模块
│ ├── Keys ← 私钥 / 公钥对
│ └── Identities ← 用户名 + 密钥/密码 的组合,被 Host 复用
│ ├── azure-ubuntu
│ ├── digitalocean-root
│ ├── aliyun-admin
│ └── homelab-admin
├── Snippets
│ ├── Linux Diagnostics
│ ├── Docker
│ ├── Network
│ └── Updates
└── Port Forwarding
├── PostgreSQL
├── PVE Web
└── Internal Dashboard
命名建议:
厂商-地区-用途
例如:
azure-korea-dev
azure-japan-proxy
do-america-app
homelab-pve
homelab-routeros
8. Termius 的版本差异
| 能力 | Starter | Pro | Team |
|---|---|---|---|
| Local Vault | ✅ | ✅ | ✅ |
| SSH / SFTP | ✅ | ✅ | ✅ |
| Port Forwarding | ✅ | ✅ | ✅ |
| AI Autocomplete | ✅ | ✅ | ✅ |
| Personal Cloud Vault | ❌ | ✅ | ✅ |
| 桌面与移动端同步 | ❌ | ✅ | ✅ |
| Snippets Automation | ❌ | ✅ | ✅ |
| Log Bookmarks | ❌ | ✅ | ✅ |
| Team Vault | ❌ | ❌ | ✅ |
| 实时协作 | ❌ | ❌ | ✅ |
[!note] 套餐功能可能随产品更新调整,实际以当前账户中的订阅页面为准。
9. Termius 与 WindTerm 的区别
Termius 和 WindTerm 都能连接 SSH,但设计重点不同。
| 维度 | Termius | WindTerm |
|---|---|---|
| 核心定位 | 跨设备 SSH 资产管理 | 桌面端重度终端与会话管理 |
| 商业模式 | 商业订阅,学生可获得 Pro/Team | 免费,部分开源 |
| 手机端 | 强 | 无正式移动端 |
| 云同步 | Pro 核心能力 | 主要依赖自行迁移配置 |
| 团队共享 | Team Vault | 非核心方向 |
| 桌面功能密度 | 相对简洁 | 更密集 |
| 本地掌控感 | 取决于 Local/Cloud Vault | 更偏本地配置 |
| 适用场景 | 多设备、移动运维、凭据统一 | 桌面重度运维、分屏与多会话 |
推荐组合:
Windows Terminal + WSL
└── 本地开发、Git、Codex、tmux、AstroNvim
WindTerm
└── 桌面端重度服务器运维
Termius Pro
└── 跨设备同步、手机应急、服务器资产管理
10. 安全实践
[!danger] 私钥不是普通配置文件 一旦私钥泄露,攻击者可能直接冒充你访问服务器。
不要把私钥发送到聊天、Git 仓库、网盘公开目录或服务器的authorized_keys中。
推荐做法
- 优先使用 Ed25519 密钥。
- 为重要私钥设置 Passphrase。
- Termius 账号启用双因素认证。
- 单独保管 Vault 加密密码或恢复信息。
- 不同安全域尽量使用不同密钥。
- 生产环境避免长期直接使用 root。
- 不默认开启 SSH Agent Forwarding。
- 定期清理失效的公钥和旧设备。
- 保留一份独立于 Termius 的加密备份。
- 云防火墙只开放实际需要的端口和来源。
推荐的密钥边界:
Personal
├── GitHub key
├── Cloud VPS key
└── HomeLab key
Production
└── 独立 key,不与个人测试环境共用
11. 常见问题排查
11.1 Permission denied (publickey)
重点检查:
登录用户名是否正确
Host 是否绑定了正确 Identity
导入的是私钥而不是 .pub
服务器 authorized_keys 是否包含对应公钥
.ssh 和 authorized_keys 权限是否正确
root 登录是否被禁用
常见云服务器用户名:
| 系统/平台 | 常见用户名 |
|---|---|
| Ubuntu | ubuntu |
| Debian | debian、root 或创建时指定 |
| CentOS | centos |
| Rocky Linux | rocky |
| Oracle Linux | opc |
| AWS Amazon Linux | ec2-user |
| DigitalOcean | 常见为 root |
用户名取决于镜像和创建方式,不能只凭系统名称绝对判断。
11.2 Connection timed out
检查:
服务器是否开机
IP 是否正确
SSH 端口是否为 22
云防火墙是否放行
系统防火墙是否放行
SSH 服务是否监听
当前网络或运营商是否阻断
服务器侧:
ss -lntp | grep ssh
systemctl status ssh
11.3 Connection closed by remote host
这表示 TCP 可能已经建立,但远端主动关闭连接。
可能原因:
- sshd 配置错误
- Fail2ban 或安全策略封禁
MaxStartups限制- TCP Wrapper 或防火墙规则
- 服务器资源异常
- SSH 服务重启或崩溃
- 云厂商安全防护主动断开
建议先用原生 SSH 获取详细日志:
ssh -vvv user@server
11.4 Host Key changed
提示服务器指纹变化时,不应直接无脑删除 Known Hosts。
先确认是否发生过:
- 系统重装
- Droplet 重建
- IP 被重新分配
- SSH Host Key 重新生成
- 负载均衡或域名指向变化
确认服务器身份后,再更新 Known Hosts。
12. Termius 的边界
Termius 适合:
- 管理多台服务器
- 快速建立 SSH 会话
- 手机应急运维
- SFTP 临时传文件
- 管理 SSH 隧道
- 保存常用命令
- 跨设备同步
- 小团队共享连接资产
Termius 不等于:
- 服务器监控系统
- 配置管理系统
- 自动部署平台
- 密码管理器的完整替代品
- VPN
- tmux 的替代品
- CI/CD 系统
更完整的基础设施工具链可以是:
Termius / WindTerm
└── 连接和日常操作
tmux
└── 保持远程会话
Git + Docker Compose
└── 应用部署
Ansible
└── 批量配置
Prometheus / Nezha
└── 状态监控
Tailscale
└── 私有网络访问
13. 最终理解
[!summary] Termius 的核心价值不是“让我能够使用 SSH”,因为系统自带的 OpenSSH、WindTerm、PuTTY 等工具早已能做到。
它真正提供的是一层统一的管理模型:
服务器在哪里 + 用什么身份登录 + 如何传文件 + 如何建立隧道 + 经常执行什么命令 + 如何跨设备同步 + 如何与团队共享对只有一台电脑和少量服务器的用户,Termius Starter 或 WindTerm 已经足够。
对拥有多台 VPS、HomeLab、手机应急需求和 GitHub 学生权益的用户,Termius Pro 很有价值。
GitHub 学生包优惠
通过 GitHub Student Developer Pack 验证学生身份后,可领取以下权益(核对日期:2026-07-29):
- 优惠内容:学生期间免费使用 Termius Pro 与 Termius Team 的全部功能(官方原文:Free access to all Termius Pro and Termius Team features, while you’re a student.)。
- 权益类型:学生资格期间免费。
- 当前状态/限制:云同步 SSH 信息时注意账户安全(Vault 加密与凭据管理)。
- 适合用途:SSH 客户端、远程开发、服务器/多设备管理。
- 官方来源:https://education.github.com/pack
[!tip] 领取提示 学生资格失效后权益会降级到免费版;迁移机密前先确认本地备份,避免云同步账户注销导致凭据丢失。
- 学生包主题地图:github-student-pack-moc
参考资料
- Termius 官方:About Us
- Termius 官方文档:What is Termius?
- Termius 官方文档:Installation
- Termius 官方文档:Set Up Vaults
- Termius 官方文档:Identities
- Termius 官方文档:Vault Encryption
- Termius 官方:Pricing
- Termius 官方:Education
- Termius 官方:Security