☰
macOS SSH 管理利器 Royal TSX:密钥、隧道与多服务器实战指南
2026/10/1 23:43:05 网站建设 项目流程

入行这些年,我几乎每天都要跟 SSH 打交道。服务器要管、防火墙要调、代码要部署……macOS 自带 Terminal 其实够用,但当你手里的机器超过二十台、密钥有两三把、还得时不时连 Windows 远程桌面和网内 NAS 的时候,一个像样的 SSH 管理工具就成了刚需。Royal TSX 就是我在 macOS 上用了很久的那一个。

Royal TSX 是 macOS 平台上一款老牌的远程连接管理工具,SSH 是它的核心主业,但远不止于此——RDP、VNC、SFTP、Web 终端、PowerShell 这些协议它都能统一管理。这篇教程我会从"为什么选它"开始,到"怎么把密钥、端口转发、多台服务器管理都用起来",再到"我踩过的坑和排查经验",尽量写成一份能直接上手的实操笔记。无论你是刚入行的运维、天天连远程开发的程序员,还是帮公司管十几台设备的兼职管理员,都适合往下看。

1. 为什么我在 macOS 上最终选了 Royal TSX

1.1 macOS 自带终端到底缺在哪

说实话,macOS 自带的 Terminal.app 配合 zsh,或者换成 iTerm2 再挂一套 Zmodem,应付一两台机器完全没问题。真正的痛点出现在"机器多了、认证方式杂了、任务开始并行"之后。

机器多了以后,每次都要手动敲 ssh user@host -p 端口,IP 容易记混,窗口一多也分不清哪个标签是哪台机器。密钥认证要自己维护 ~/.ssh/config,虽然这是好习惯,但纯文本配置改起来终归有门槛,一个空格错了整段连接就废了。跨协议的问题更明显:我这边要连 Linux、要连 Windows 远程桌面、要看 vSphere 虚拟机控制台、要登 NAS 管理页,系统自带的工具是零散的,没有统一入口。还有会话恢复能力弱,Terminal 窗口一关,之前在哪些服务器上、开了哪些端口转发,全都不记得。

这些场景凑到一起,就需要一个"连接管理器",而不只是一个"终端模拟器"。这也是 Royal TSX 这类工具存在的根本原因:它把连接这件事本身管起来,终端只是其中一个展示窗口。

1.2 Royal TSX 的定位与核心优势

Royal TSX 来自德国 Royal Apps 团队,名字看着像编辑器,实际是个全能型远程连接管理套装。Windows 上叫 Royal TS,macOS 上叫 Royal TSX,两边可以共用配置文件,这对混合环境特别友好。

它的核心优势我总结成四点:

  • 协议覆盖面够广。SSH、SFTP、RDP、VNC、FTP、Telnet、PowerShell、HTTP(S) 预览、TeamViewer 调用……几乎你能想到的远程访问方式,都能在一棵连接树里管理。
  • 凭据集中管理。密码、私钥、通行证都可以存进 Royal TSX 自己的凭据库,再用主密码或 macOS 钥匙串锁起来,不需要每次连接都重新输入。
  • 连接树组织能力强。可以建文件夹、用颜色标记、打标签、快速过滤,几十台机器也能一眼定位。
  • 会话复用和隧道配置非常顺手。SSH 的 ControlMaster、本地/远程端口转发都能在图形界面里配置,不用每次敲一串 ssh -L 参数。

当然它不是那种"零学习成本"的工具,界面菜单偏传统,初次使用稍显复杂。但一旦把连接树和密钥配置好,日常体验会非常顺。而且免费基础版就够用,基础版限制的是同时打开的标签/连接数量,个人日常管理完全够,觉得值再升级 Pro,一次买断,没有订阅压力。

1.3 与同类工具的选型对比

给还在犹豫的人一个快速参考表:

工具协议支持凭据管理价格/模式适合场景
Royal TSXSSH/RDP/VNC/SFTP等强,内置凭据库基础免费,Pro买断多协议、多主机统一管理
iTerm2SSH(终端)弱,依赖 ssh config免费开源单机或少量机器、重度终端用户
TermiusSSH/SFTP/端口转发强,跨设备同步订阅制跨平台、移动端也要连
SecureCRTSSH/串口/Telnet强付费老牌网工、串口设备调试
FinalShellSSH/SFTP/监控中免费/付费Windows用户、需要服务器监控面板

我的主观建议是:如果只连 Linux 终端,iTerm2 + ssh config 完全够;如果和我一样要管 Windows 桌面、虚拟机、NAS、多台云主机,还要保存一堆密码和密钥,Royal TSX 的集中管理优势就体现出来了。

2. 核心功能拆解:它不只是 SSH 客户端

2.1 连接树、标签与颜色标记

第一次打开 Royal TSX,你会看到左侧是一棵连接树,类似于文件管理器的目录结构。你可以建"服务器组"文件夹,再把一台一台机器拖进去。这个连接树是这款工具的灵魂,我的使用习惯是这样的:

  • 按项目建顶层文件夹,比如"公司业务""家庭实验室""客户现场";
  • 每个文件夹里再按角色建子文件夹,比如"Web服务器""数据库服务器""跳板机";
  • 给每台机器用颜色标记状态,绿色是生产、黄色是测试、灰色是已停用;
  • 用标签做跨文件夹筛选,比如给所有需要定期更新的机器打上"update-2025"标签。

连接树顶部还有一个快速过滤输入框,输入关键字立刻过滤出匹配的服务器,机器再多也不会在列表里翻来翻去找。我见过有的同事把几十台机器堆在根节点下面,每次找机器眼睛都看花,其实花十分钟归类一下,效率提升非常明显。

另外右键菜单里有个"作为模板保存"的选项,可以把某台机器的所有配置存成模板,新建连接时选择模板再改 IP,几十台相同配置的机器可以批量生成,适合克隆部署场景。

2.2 凭据库与钥匙串集成

Royal TSX 的凭据管理是独立模块:你可以把服务器地址、端口、用户名、密码、私钥路径全部集中存放在凭据库里,然后在连接里引用这些凭据。这样做的好处是:服务器信息改了,只需改凭据库里的记录,所有引用它的连接都会自动生效。

凭据库本身支持主密码保护。你可以设置一个加载凭据库时要求输入的主密码,也可以直接走 macOS 钥匙串解锁。这样即使别人拿到你的电脑,也看不到明文密码。私钥文件建议放在 ~/.ssh/ 目录下,权限保持 600。Royal TSX 引用私钥时可以直接指向文件路径,也可以把私钥内容导入到凭据库里。我个人的建议是指向文件路径而不是复制内容,这样后续密钥轮换时只需要替换文件,不需要在多个连接里逐个改。

2.3 终端体验:标签、分屏、主题与字体

Royal TSX 的终端内置了标签页和分屏功能。连接多台机器时,可以像浏览器一样横向开一堆标签,也可以在一个窗口里上下左右分屏同时看多台机器。这个特性在批量发布或对比两边环境配置时特别好用,比如左边窗口 watch 日志,右边窗口改配置文件,改完直接回车重启服务。

终端外观可以自定义:配色方案、光标样式、滚动历史行数都能调。字体这块多说一句,很多人喜欢在代码编辑器里找"接近 macOS 原生体验"的字体,其实在 Royal TSX 里直接选系统自带的 Menlo 或 SF Mono,观感就很接近。用 JetBrains Mono、Cascadia Code 也都没问题,关键是打开字体平滑渲染,默认设置下中文注释已经很清晰,不需要额外折腾。

终端还支持代理命令和自动响应规则。比如可以设置收到"password:"提示时自动填入某个凭据,虽然我不建议在生产环境这么干,但确实算个灵活的小功能。

2.4 隧道、任务与命令面板

除了单纯的连接,Royal TSX 还能在图形界面里维护 SSH 隧道,也就是端口转发。比如本地调试时想访问服务器那边的数据库,只需要新建一条本地转发规则,把服务器的 3306 映射到本机的 13306,连接一建立隧道就自动带上,不用手动传参。

它还内置了任务系统。可以给某个连接配置"连接后自动执行命令",比如连上 Web 服务器后自动执行 cd /var/www && git pull,省去每次手敲。命令面板可以保存常用命令片段,类似快捷短语,需要的时候一键发送到终端。长期面对重复操作的朋友,建议把操作清单整理成模板,能省不少事。

3. SSH 连接实操:从新建连接到密钥登录

3.1 新建 SSH 连接的基础配置

先说最简单的方式:用密码连接。

  1. 在连接树中右键 → New Connection → 选 SSH。
  2. 在右侧配置面板里填 Host name(IP 或域名)、Port(默认 22)、Username。
  3. Authentication 选择 Password,填好密码。
  4. 点击 Connect,第一次连接会有 host key 确认,类似命令行的 Are you sure you want to continue connecting (yes/no)。确认后就进入终端了。

这里有个细节:如果目标服务器的 SSH 端口不是默认的 22,一定要在连接配置里提前改好。另外密码登录虽然简单,但有两个隐患:一是每次会话验证都要输密码,不方便做自动化;二是弱密码容易被暴力破解。所以只要条件允许,强烈建议切成密钥登录。

3.2 用密钥登录:生成、部署、配置

密钥登录的完整链路是:本地生成一对密钥(公钥+私钥),把公钥放到服务器上,本地用私钥去认证。私钥相当于你的身份证,一定不要泄露。

第一步,生成密钥。在本地终端执行:

ssh-keygen -t ed25519 -C "my-macbook-$(date +%Y%m%d)" -f ~/.ssh/id_ed25519

Ed25519 是目前综合速度和安全性都不错的算法,比老的 RSA 2048 更短更安全。如果对方服务器比较老、不支持 Ed25519,再退回去用 RSA:

ssh-keygen -t rsa -b 4096 -C "my-macbook-20250601" -f ~/.ssh/id_rsa

生成过程中会提示设置私钥口令(passphrase)。建议设置一个,这样即使私钥文件被偷走,别人还需要口令才能使用。

第二步,部署公钥到服务器。经典做法是用 ssh-copy-id:

ssh-copy-id -i ~/.ssh/id_ed25519.pub -p 22 user@server-ip

如果目标服务器没装 ssh-copy-id,手动执行:

cat ~/.ssh/id_ed25519.pub | ssh user@server-ip "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"

第三步,在 Royal TSX 里使用密钥。连接的 Authentication 从 Password 改成 Public Key,然后选择 Private Key 文件路径。如果给私钥设置了口令,首次使用会要求输入一次,之后可以勾选"保存到钥匙串",就不用每次输入了。

注意:私钥文件权限必须是 600 或 400,如果权限太宽松(比如 644),SSH 客户端会直接拒绝使用。这个坑极常见,尤其从 Windows 拷贝密钥到 macOS 后权限经常是 644,需要 chmod 600 修复。

3.3 会话复用与端口转发

先说会话复用。每次 SSH 连接都要经过 TCP 握手和密钥协商,频繁连接时有明显延迟。利用 ControlMaster 机制可以复用已建立的连接,在 ~/.ssh/config 里加这段:

Host * ControlMaster auto ControlPath ~/.ssh/controlmasters/%r@%h:%p ControlPersist 10m

记得先执行 mkdir -p ~/.ssh/controlmasters。配置生效后,你在同一台机器上再开新连接,会直接复用之前的会话,秒开。Royal TSX 的连接属性里也有会话复用开关,开启后体感提升非常明显。

再说端口转发。我举两个最常见的场景。

场景一:本地调试远程数据库。远程主机内网有 MySQL 监听 127.0.0.1:3306,本地想用客户端去连。在 Royal TSX 的 SSH 连接属性里找到隧道/转发设置,新建一条 Local Forwarding,源填 127.0.0.1:13306,目标填 127.0.0.1:3306。连接建立后,本机访问 127.0.0.1:13306 就等于访问远程的 MySQL,命令行写法对应:

ssh -L 13306:127.0.0.1:3306 user@server

场景二:把本机服务临时暴露给远程服务器。比如本机跑了一个调试用的 Web 服务在 8080 端口,远程服务器需要访问它。建一条 Remote Forwarding,源填远程的 18080,目标填本机的 127.0.0.1:8080。连接建立后,远程服务器访问 http://127.0.0.1:18080 就能到达你的本地服务,命令行写法对应:

ssh -R 18080:127.0.0.1:8080 user@server

这两种隧道在 Royal TSX 里配置一次之后,每次连接自动带上,不用记参数。用完记得关,别长期挂着不需要的转发。

3.4 配置的导入导出与迁移

Royal TSX 的连接配置默认保存在本机。换电脑、重装系统前,建议在 File → Export 里导出一次配置,生成 .rtsx 文件。重装完 macOS 后再导入,连接树、凭据引用、隧道规则都能恢复,省去重新配几十台机器的功夫。

如果你像我一样同时用 Windows 和 macOS,可以把导出的配置放在网盘或内网共享里,两边分别用 Royal TS 和 Royal TSX 导入,保持连接树一致。注意密钥文件路径在两边可能不同,Windows 是 C:\Users\xxx.ssh\id_ed25519,macOS 是 /Users/xxx/.ssh/id_ed25519,导入后需要检查一次私钥路径,别等连接报"找不到私钥"才发现。

重装 macOS 这种事,我遇到过不止一次。配置导出文件放在能随时拿到的地方,比什么都重要。

4. 真实场景:配合 vscode、git、Windows 服务器一起用

4.1 和 vscode Remote-SSH 的分工

很多程序员现在用 vscode Remote-SSH 连远程服务器写代码,体验确实爽。那是不是有了 vscode 就不需要 Royal TSX 了?我的看法是两者定位不同,完全可以配合使用。

vscode Remote-SSH 的强项是远程开发体验:远程目录、代码补全、调试、终端集成。它的终端其实是附带功能,不适合做大量的多机连接管理。而 Royal TSX 的强项恰恰是多连接管理 + 多协议 + 隧道。

我在实际工作中的分工是:

  • vscode 负责打开某个远程项目的代码,专注写业务;
  • Royal TSX 负责所有基础设施操作:重启服务、看日志、临时改文件、数据库隧道、连 Windows 远程桌面、登 NAS 管理页面;
  • 两者同时开着互不冲突,因为 vscode 的 SSH 配置同样读取 ~/.ssh/config,而 Royal TSX 也支持读同一个 config 文件。

这里有个小经验:如果你在 vscode 里连接远程时遇到"此扩展在此工作区中被禁用,因为其被定义为在远程扩展主机中运行"这类提示,通常是本地/远程扩展安装策略不一致导致的。可以在 Royal TSX 里 SSH 到同一台机器,检查远程端的 .vscode-server 目录是否完整,删除损坏目录后让 vscode 重新安装远程服务即可。

4.2 把 ~/.ssh/config 变成你的中转站

Royal TSX 支持直接读取/编辑 ~/.ssh/config,也支持在连接里使用 config 中定义的主机别名。我习惯把所有服务器的公共参数集中在 config 里管理,然后在 Royal TSX 里只需要填主机别名,不必重复填端口和密钥路径。

举个例子,在 ~/.ssh/config 里写:

Host web-prod HostName 192.168.10.20 User ubuntu Port 2222 IdentityFile ~/.ssh/id_ed25519 ServerAliveInterval 30

在 Royal TSX 新建 SSH 连接时,Host 填 web-prod,它会自动识别 config 里的 HostName、User、Port、密钥。这样既保留了命令行党的习惯,又享受了 GUI 的管理便利,两边不会出现两套真相。

4.3 一个真实排查案例:gitlab 克隆失败

有次在同事的新 Mac 上配 GitLab 访问,git clone 一直报 Permission denied (publickey)。排查路径很有代表性,完整走一遍:

  1. 先确认密钥是否已加到 GitLab:执行 ssh -T git@gitlab.example.com。如果返回 Welcome to GitLab, @username,说明认证没问题;如果还是 Permission denied,继续往下查。
  2. 用 ssh -vT git@gitlab.example.com 查看详细日志,重点看 Offering public key 和 Server accepts key 两行。如果客户端根本没提供密钥,多半是 ssh-agent 没加载。
  3. 确认密钥文件权限:ls -l ~/.ssh/id_ed25519,不是 600 就改。
  4. 把公钥内容贴到 GitLab 的 SSH Keys 页面:cat ~/.ssh/id_ed25519.pub。
  5. 最后 ssh -T git@gitlab.example.com 验证。

在 Royal TSX 里排查也一样,你甚至可以新建一个 SSH 连接指向 gitlab 服务器的 22 端口并选对应密钥,看它能不能通过。这样能把"Royal TSX 无法连"和"gitlab 不认密钥"两个问题快速分开。

4.4 与 Windows 端服务器的协作

公司里不是只有 Linux。我经常要连 Windows Server 远程桌面,偶尔登一下装了 OpenSSH Server 的 Windows 机器。Royal TSX 对这两者都支持:RDP 协议直接管理 Windows 远程桌面,SSH 协议也可以连 Windows 的 OpenSSH 服务端。

如果你在 Windows 端更熟悉 Bitvise SSH Server,在 macOS 端用 Royal TSX 去连它也完全没问题,因为双方遵循的都是标准 SSH 协议。需要注意认证方式:Bitvise 默认可能启用了它自己的虚拟账户体系,密钥登录时要把公钥放到对应用户的 authorized_keys 里,路径和 Linux 略有差异。遇到连不上的情况,先看 Bitvise 服务端日志,它会清楚地告诉你认证在哪一步失败。

5. 常见问题与排查技巧实录

5.1 连接超时、拒绝连接

症状:点击连接后一直转圈,最后提示 timeout;或者直接提示 Connection refused。

排查思路:

  • 先用 ping 和 nc 判断网络通不通:nc -vz host 22;
  • 如果是 timeout,通常是防火墙或路由问题,检查安全组/防火墙是否放行 22 端口;
  • 如果是 Connection refused,说明目标主机的 SSH 服务没起来或端口不对,在远程主机上执行 sudo systemctl status sshd 确认服务状态;
  • 如果之前能连、现在突然超时,检查是不是本机 IP 被服务器的 fail2ban 拉黑了。用其他途径登上去看 fail2ban 日志。

这类问题 90% 是网络层面的问题,不要在密钥设置上死磕。先确认端口通不通,再谈认证。

5.2 Permission denied (publickey)

这是密钥登录最常见的报错。可能原因按概率排序:

  • 私钥路径配置错了,Royal TSX 指向的文件不存在;
  • 私钥文件权限太宽松,执行 chmod 600 ~/.ssh/id_ed25519;
  • 公钥没有正确加到服务器的 authorized_keys,或者追加时把公钥内容折行、多了换行符;
  • 服务器端 ~/.ssh 或 authorized_keys 权限不对,正确应该是 ~/.ssh 700、authorized_keys 600;
  • 用了 ssh-agent 但 agent 里没加载钥匙,执行 ssh-add ~/.ssh/id_ed25519。

排查这类问题,强烈建议在 Royal TSX 里打开连接属性中的详细日志,或者直接用命令行 ssh -v 跑一遍。详细日志会告诉你到底是"没提供密钥"还是"服务器拒绝了密钥",两者方向完全不同。

5.3 known_hosts 冲突:Host key verification failed

症状:服务器重装系统后,再连接时报 Host key verification failed。

原因:本机保存了旧的主机指纹,与服务器新指纹不一致,SSH 出于安全考虑拒绝继续。

处理办法:

ssh-keygen -R 服务器IP

删除旧指纹后重新连接,会再次提示确认新指纹。在 Royal TSX 里有时会弹窗,也可以选"更新/接受新密钥"。遇到这个警告时要冷静,确认服务器确实重装过再接受,如果不确定,一定要先走其他渠道核实,别盲目点确定。

5.4 终端乱码、颜色和复制粘贴问题

中文乱码:确认服务器和本机字符集。执行 locale,如果发现 LANG 不是 UTF-8,在 Royal TSX 连接属性里设置环境变量 LANG=en_US.UTF-8 或 zh_CN.UTF-8。

颜色不对:检查终端类型设置,Royal TSX 默认 TERM 通常是 xterm-256color,能显示更多颜色。如果你改过,又发现 ls 的高亮颜色不正常,多半是 TERM 没配对。

复制粘贴:Royal TSX 默认用 macOS 剪贴板,选中即复制、右键粘贴。如果你习惯中键粘贴,需要在设置里开启鼠标中键粘贴选项。这个设置藏得比较深,但开完很舒服,尤其是配合鼠标操作远程终端的时候。

5.5 批量登录、跳板机与反向隧道

批量登录不需要一个一个点。Royal TSX 支持选中多个连接再右键"全部打开"。我经常用它一次性打开几台测试机,然后配合分屏对比日志。管理几十台相同配置的机器时,利用连接树模板复制功能,改一改 IP 就能生成一堆连接,省去重复劳动。

跳板机场景:生产服务器不允许直接连接时,需要从跳板机跳转。在 Royal TSX 的 SSH 连接属性里可以设置 Jump Host,底层用的就是 ssh -J 功能。只需要维护跳板机地址和密钥,生产机会自动带上跳板链路。某些 NAS 或者存储设备不支持直连,也可以用这种方式绕一层进去。还有人会拿 SSH 连 NAS 去做存储池创建、系统维护之类的操作,在 Royal TSX 里跑这些长命令交互都很顺手。

反向隧道主要用于让远程机器能访问我的临时调试服务,属于远程转发场景,上面 3.3 节讲过。再补充一点:反向隧道很适合解决"远程服务器需要临时访问本机数据库客户端"之类的需求,用完就关,不需要在防火墙上开永久端口,安全上也更稳妥。

5.6 Royal TSX 自身的几个小毛病

用了几年,它也有一些不完美的地方:

  • 界面偏老派,第一次打开可能觉得菜单多。解决办法是花十分钟把默认工具栏简化,只留常用按钮。
  • 同时开很多会话时内存占用会上去。经常开三十个以上标签的话,建议把不用的连接及时关闭。
  • 免费版同时打开的连接数量有限制。我遇到过弹窗提示达到免费版限制,后来买了 Pro,一次买断,没有订阅压力。
  • 升级大版本后偶尔出现凭据库打不开的情况,导出备份 + 主密码双重保障很有必要。
  • 多个会话同步操作的时候,偶尔会出现焦点丢失,需要点一下终端窗口才恢复键盘输入。这个不算严重,但遇到时别慌。

我在实际使用中最深的一个体会是:把配置和凭据管理做好之后,Royal TSX 几乎是隐身的——你不会再关心"怎么连",只会关心"要去哪台机器做什么"。这才是工具该有的状态。

最后再分享一个小习惯:我把 Royal TSX 的配置导出文件放在内网网盘,每隔一段时间导出一次。重装系统、换电脑、甚至同事需要接手我的服务器清单时,直接导入就能用。工具本身可以换,但组织好的连接知识才是最值钱的资产。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询