Termius

介绍 Termius 这款跨平台 SSH 客户端与远程主机管理器:核心模型(Vault/Group/Host/Keychain)、从零配置、SFTP 与端口转发、安全实践和常见连接排查,以及与 WindTerm 的取舍。

#status / growing #type / resource #tech / ops #resource / termius #media / tool #interface / desktop

[!info] related notes

Termius

[!abstract] 一句话理解 Termius 是一个以 SSH 为核心,把主机、凭据、文件传输、端口转发、常用命令和多设备同步统一起来的远程基础设施管理工具。

它不发明新的 Linux Shell,也不会让 SSH 协议本身变快;它主要解决的是:
服务器多了以后,地址、密钥、账号、隧道、常用命令和设备之间越来越难管理的问题。

termius-keychain-interface


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。

生成后:

  1. 私钥保留在 Keychain。
  2. 复制公钥。
  3. 把公钥追加到服务器用户的 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 内部用来把主机分组、并让子主机继承配置的机制;CloudHomeLab 是两组顶级分组。
  • 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 的版本差异

能力StarterProTeam
Local Vault
SSH / SFTP
Port Forwarding
AI Autocomplete
Personal Cloud Vault
桌面与移动端同步
Snippets Automation
Log Bookmarks
Team Vault
实时协作

[!note] 套餐功能可能随产品更新调整,实际以当前账户中的订阅页面为准。


9. Termius 与 WindTerm 的区别

Termius 和 WindTerm 都能连接 SSH,但设计重点不同。

维度TermiusWindTerm
核心定位跨设备 SSH 资产管理桌面端重度终端与会话管理
商业模式商业订阅,学生可获得 Pro/Team免费,部分开源
手机端无正式移动端
云同步Pro 核心能力主要依赖自行迁移配置
团队共享Team Vault非核心方向
桌面功能密度相对简洁更密集
本地掌控感取决于 Local/Cloud Vault更偏本地配置
适用场景多设备、移动运维、凭据统一桌面重度运维、分屏与多会话

推荐组合:

Windows Terminal + WSL
└── 本地开发、Git、Codex、tmux、AstroNvim

WindTerm
└── 桌面端重度服务器运维

Termius Pro
└── 跨设备同步、手机应急、服务器资产管理

10. 安全实践

[!danger] 私钥不是普通配置文件 一旦私钥泄露,攻击者可能直接冒充你访问服务器。
不要把私钥发送到聊天、Git 仓库、网盘公开目录或服务器的 authorized_keys 中。

推荐做法

  1. 优先使用 Ed25519 密钥。
  2. 为重要私钥设置 Passphrase。
  3. Termius 账号启用双因素认证。
  4. 单独保管 Vault 加密密码或恢复信息。
  5. 不同安全域尽量使用不同密钥。
  6. 生产环境避免长期直接使用 root。
  7. 不默认开启 SSH Agent Forwarding。
  8. 定期清理失效的公钥和旧设备。
  9. 保留一份独立于 Termius 的加密备份。
  10. 云防火墙只开放实际需要的端口和来源。

推荐的密钥边界:

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 登录是否被禁用

常见云服务器用户名:

系统/平台常见用户名
Ubuntuubuntu
Debiandebianroot 或创建时指定
CentOScentos
Rocky Linuxrocky
Oracle Linuxopc
AWS Amazon Linuxec2-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 ProTermius 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] 领取提示 学生资格失效后权益会降级到免费版;迁移机密前先确认本地备份,避免云同步账户注销导致凭据丢失。

参考资料

  • Termius 官方:About Us
  • Termius 官方文档:What is Termius?
  • Termius 官方文档:Installation
  • Termius 官方文档:Set Up Vaults
  • Termius 官方文档:Identities
  • Termius 官方文档:Vault Encryption
  • Termius 官方:Pricing
  • Termius 官方:Education
  • Termius 官方:Security
创建于 2026/7/21 更新于 2026/7/21