Agent工坊

【Agent工坊】Hermes Desktop 远程控制:Tailscale+SSH 安全部署指南

Hermes Agent Desktop App 不是另一个 Agent——它是同一套运行时在桌面上的窗口。理解这一点,你就会明白远程控制的真正价值:你的 MacBook 只是一个显示器,真正的 Agent 在 5 美元 VPS 上 24 小时运行。

Hermes Desktop 远程控制架构▲ Hermes Desktop 远程控制架构

为什么要把 Agent 跑在远程服务器上

Hermes Agent Desktop App(2026 年 6 月 2 日发布,v0.16.0)解决了 AI 创业者最常见的三个痛点:

第一,24 小时在线。 你的笔记本电脑会合盖、会断网、会没电。但 Cron 任务、Telegram 消息监听、定时内容发布——这些都需要 Agent 持续运行。一台 5 美元/月的 VPS 永远不会休眠。

第二,环境隔离。 Agent 执行 terminal 命令、写文件、调 API——你肯定不想让它在你日常工作的 MacBook 上横冲直撞。VPS 是最便宜的沙箱。

第三,多设备共享同一个 Agent。 Desktop App 是"窗口"而非"分身"。你在办公室 Mac 上启动的会话,回家后可以用 Windows 桌面继续——因为 Agent 的实际运行时在 VPS 上,所有设备看到的都是同一个记忆、同一套技能、同一个配置。

根据 Nous Research 官方数据,Hermes Agent 在 4 个月内积累了约 18 万 GitHub Star,321 位贡献者参与了 v0.15.0 开发。Desktop App 的推出让"不需要终端"的用户也能使用 Hermes,而远程控制功能则让"需要服务器部署"的专业用户有了完整方案。

架构原理:Desktop App 如何连接远程 Agent

理解架构是避免踩坑的第一步。Desktop App 通过 SSH Backend 连接远程 Agent:

┌─────────────────────────┐ SSH/Tailscale ┌──────────────────────┐

│ Hermes Desktop App │ ◄──────────────────────► │ VPS (Debian/Ubuntu) │

│ (macOS/Windows/Linux) │ 加密隧道,端口转发 │ hermes-agent serve │

│ │ │ 技能/记忆/Cron/配置 │

│ 只渲染 UI,不运行 Agent │ │ 真正的 Agent 运行时 │

└─────────────────────────┘ └──────────────────────┘

关键设计决策(来自 digitalapplied.com 的深度评测):Desktop App 的 Agent 核心与 CLI 版本完全相同——不是 fork,不是轻量版,是同一个 run_agent.py。这意味着你在桌面端看到的每一个功能(Skills、Cron、Profiles、Sub-agents),背后都是 VPS 上真实运行的 Agent 在驱动。

第一步:在 VPS 上部署 Hermes Agent

1.1 准备 VPS

推荐配置:

  • 系统:Debian 12 或 Ubuntu 22.04 LTS
  • 内存:≥ 2GB(Agent 本身 ~500MB,留给 LLM 调用余量)
  • 磁盘:≥ 20GB(技能文件、记忆、日志会随时间增长)
  • 价格参考:Hetzner CX22(约 4 欧元/月)、Hostinger KVM2(约 5 美元/月)、阿里云轻量(约 34 元/月)

1.2 安全加固(必做!)

Agent 会持有你的 API Key、执行 Shell 命令——直接暴露在公网上等于送钱给攻击者。

# 1. 创建非 root 用户

adduser hermes

usermod -aG sudo hermes

# 2. 配置 SSH Key 登录(禁止密码)

mkdir -p ~/.ssh && chmod 700 ~/.ssh

# 把你本机的公钥粘贴进去

echo "ssh-ed25519 AAAA..." >> ~/.ssh/authorized_keys

chmod 600 ~/.ssh/authorized_keys

# 3. 禁用 root 登录和密码认证

sudo sed -i 's/^#PermitRootLogin.*/PermitRootLogin no/' /etc/ssh/sshd_config

sudo sed -i 's/^#PasswordAuthentication.*/PasswordAuthentication no/' /etc/ssh/sshd_config

sudo systemctl restart sshd

根据 r/hermesagent 社区的实战讨论,跳过安全加固步骤是新手最常见的事故原因——已有案例中,暴露在公网上的 Hermes Agent 被扫描器发现后,API Key 在 12 小时内被盗用。

1.3 安装 Hermes Agent

# Python 3.10+ 是硬性要求

python3 --version # 确认版本

# 安装

pip install hermes-agent

# 验证

hermes --version

# 输出:Hermes Agent v0.16.0 (v2026.6.5)

踩坑提醒:如果 pip install hermes-agent 报错找不到包,检查 pip 版本(需要 ≥23.0),或者用 pip install --upgrade pip 更新后重试。部分 VPS 模板自带的 Python 3.9 不兼容——需要先 sudo apt install python3.10 python3.10-venv

1.4 配置 API Key 和模型

# 配置模型提供商(以 DeepSeek 为例)

hermes config set model deepseek-v4-pro

hermes config set provider deepseek

# 配置 API Key(存储在 ~/.hermes/.env)

hermes config set api_key_deepseek sk-your-key-here

# 如果使用 OpenRouter(访问 200+ 模型)

hermes config set provider openrouter

hermes config set api_key_openrouter sk-or-v1-xxx

Digital Applied 的评测指出,Hermes 是"模型无关"的——你可以混用 DeepSeek 做日常任务、Claude Opus 4.8 做深度分析、本地 Llama 做敏感数据处理,Desktop App 的模型切换器让这一切在 GUI 里完成。

第二步:Tailscale 组网(零信任安全)

直接用 SSH over 公网 IP 是安全灾难。Tailscale 基于 WireGuard 的零信任网络让你把 VPS 和本机放在同一个虚拟局域网里,SSH 端口根本不需要向公网开放。

Tailscale 零信任网络安全架构▲ Tailscale 零信任网络安全架构

2.1 VPS 端安装 Tailscale

# 一键安装

curl -fsSL 官方安装脚本 | sh # 从 tailscale 官网获取最新安装命令

# 启动并登录

sudo tailscale up

# 记下 VPS 的 Tailscale IP(通常是 100.x.x.x)

tailscale ip -4

# 输出:100.87.65.43

2.2 本机安装 Tailscale

从 tailscale.com 下载 macOS/Windows 客户端,安装后用同一个账号登录。登录后两台设备自动进入同一个 Tailscale 网络。

2.3 配置防火墙(只允许 Tailscale 网段)

# 允许 Tailscale 流量(UDP 41641 是 WireGuard 端口)

sudo ufw allow in on tailscale0

sudo ufw allow 41641/udp

# 禁止 SSH over 公网(现在只能通过 Tailscale IP 访问)

sudo ufw deny 22/tcp

# 启用防火墙

sudo ufw enable

验证:从本机 ssh hermes@100.87.65.43(Tailscale IP)应该可以连接;尝试用 VPS 的公网 IP 连接应该超时。如果公网 IP 还能连上,检查 UFW 规则顺序。

Pro Level AI Academy 在 YouTube 教程中强调:Tailscale + 防火墙的组合是"部署 AI Agent 的最低安全基线"。不要跳过这一步。

第三步:启动远程 Agent 并连接 Desktop App

3.1 VPS 端启动 Agent 服务

# 在 VPS 上启动 Hermes Agent 网关服务

hermes gateway start --host 0.0.0.0 --port 8777

# 输出示例:

# Gateway started on 0.0.0.0:8777

# API docs: 0.0.0.0:8777/docs

--host 0.0.0.0 让它监听所有网络接口,但因为我们配置了防火墙,只有 Tailscale 网段能访问。

踩坑提醒:如果看到 Address already in use,说明端口被占用。用 lsof -i :8777 查看是谁占的,或者换一个端口 --port 8787

3.2 Desktop App 配置 SSH Backend

打开 Hermes Desktop App → Settings → Backend → SSH,填入:

Host: 100.87.65.43 # VPS 的 Tailscale IP

Port: 22 # SSH 端口

Username: hermes # VPS 上的用户名

Auth Method: SSH Key # 选择密钥认证

SSH Key Path: ~/.ssh/id_ed25519 # 你的私钥路径

Gateway Port: 8777 # Agent Gateway 端口

注意Gateway Port 填的是 VPS 上 Agent Gateway 监听的端口(8777),不是 SSH 端口。Desktop App 通过 SSH 隧道把本机请求转发到这个端口。

3.3 验证连接

Desktop App 状态栏显示绿色 Connected 即成功。你会看到:

  • Session 列表里出现 VPS 上的历史会话(如果有的话)
  • Skills 面板显示 VPS 上安装的技能列表
  • Cron Jobs 显示 VPS 上的定时任务
  • Profile 切换器可用

关键验证:在 Desktop App 中执行 terminal 命令 hostname,输出应该是 VPS 的主机名——证明命令确实在远程执行,不是本机。

TheAIGRID(39.3 万订阅的 AI 教育频道)在 6 月 4 日的教程中实测:从头到尾完成本教程所有步骤约需 25 分钟,其中 20 分钟在等待软件安装。

第四步:进阶——多设备共享同一个 Agent

Desktop App 的真正威力在"多窗口"场景:

┌──────────────┐ ┌──────────────┐ ┌──────────────┐

│ 办公室 Mac │ │ 家里 Windows │ │ 手机 Telegram│

│ Desktop App │ │ Desktop App │ │ (消息网关) │

└──────┬───────┘ └──────┬───────┘ └──────┬───────┘

       │ │ │

       └────────────────────┼────────────────────┘

                            │ Tailscale 网络

                   ┌────────▼────────┐

                   │ VPS (Agent) │

                   │ 同一份记忆 │

                   │ 同一套技能 │

                   │ 同一个 Cron │

                   └─────────────────┘

所有设备连接同一个 VPS Agent。你在办公室让 Agent 启动了一个数据分析任务,回家后在 Windows Desktop App 上可以看到它还在跑。Telegram 消息网关让手机也能给 Agent 发指令。

多设备共享同一个 Agent▲ 多设备共享同一个 Agent

踩坑与排障

坑 1:Desktop App 显示 "Connection Refused"

原因:VPS 上 Gateway 没启动,或防火墙挡住了。

# VPS 上检查

ps aux | grep hermes # Gateway 进程在不在

sudo ufw status # 检查防火墙规则

curl localhost:8777/health # 本地健康检查

坑 2:能连上但执行命令超时

原因:模型 API Key 没配置,Agent 收到请求后调不了 LLM。

hermes config show # 确认 model 和 provider

cat ~/.hermes/.env | grep API_KEY # 确认 Key 存在(但不要打印具体值)

坑 3:Tailscale 连上了但 SSH 不通

原因:SSH 服务没监听 Tailscale 接口。

# VPS 上检查 SSH 监听地址

sudo ss -tlnp | grep 22

# 应该看到 0.0.0.0:22 或 [::]:22

# 如果只有 127.0.0.1:22,改 sshd_config 里 ListenAddress

坑 4:Cron Job 在远程 Agent 上运行但你收不到结果

原因:Cron Job 的输出目标配置不对。检查 Cron 配置中的 delivery 设置(Telegram/Discord/Email)。

坑 5:API Key 泄露风险

有社区用户反馈,忘记关防火墙直接把 Agent Gateway 暴露在公网上,API Key 被扫描器抓到。铁律

# 每次改完配置跑一遍

sudo ufw status verbose

# 确认 8777 端口不在公网规则里

curl --connect-timeout 5 你的公网IP:8777/health

# 应该超时或连接拒绝,不能返回 200

常见问题

Q:为什么要用 Tailscale,直接用 SSH 端口转发不行吗?

SSH 端口转发(ssh -L 8777:localhost:8777 hermes@vps)技术上可行,但需要维护 SSH 连接不中断。Tailscale 是持久组网,Desktop App 自动处理重连,更省心。而且 Tailscale 的 ACL 规则让你能细粒度控制哪台设备能访问 Agent。

Q:VPS 配置不够会怎样?

Hermes Agent 本身是轻量的(~500MB 内存),真正的瓶颈是 LLM API 调用——这发生在云端,不消耗 VPS 资源。2GB VPS 足够日常使用。但如果你跑本地模型(通过 Ollama/LM Studio),那需要更多资源。

Q:能不能不用 Desktop App,纯 CLI 远程连接?

完全可以。Desktop App 只是多了一种访问方式。如果你习惯终端:

# 从本机 SSH 到 VPS,直接在 VPS 上操作

ssh hermes@100.87.65.43

hermes chat # 启动 CLI 会话

Desktop App 的优势是文件预览、Review Rail(代码变更可视化)、模型切换器等 GUI 功能。

Q:多个人能共享同一个 Agent 吗?

技术上可以,但不推荐。Hermes 的记忆和技能是针对单个用户的——多人共享会导致记忆污染。正确做法是用 Profiles 隔离不同用户的工作空间。

Q:我已有运行的 Agent,安装 Desktop App 会覆盖配置吗?

不会。Desktop App 读取的是同一份 ~/.hermes/ 配置目录。安装 Desktop App 后,你的 Skills、Cron Jobs、Memories、API Keys 全部保留。这就是"同一核心"架构的好处。

总结

Hermes Agent Desktop App 的远程控制能力解决了 AI 创业者最实际的问题:Agent 应该 24 小时在线跑在服务器上,而你需要的是任何设备都能随时打开的工作窗口。

整个部署链条的核心是 Tailscale 零信任网络——Agent Gateway 永远不对公网开放,所有通信经加密 WireGuard 隧道。5 美元的 VPS + 免费的 Tailscale(个人版支持 3 个用户 100 台设备)= 一个安全的 24 小时 AI 助手。

下一步可以尝试:给 Agent 配一个 Telegram Bot(作为消息网关),这样你连 Desktop App 都不用打开——手机上发条消息,VPS 上的 Agent 就开始干活了。


本文基于 Hermes Agent v0.16.0 (v2026.6.5) 实测编写。信息来源包括 Nous Research 官方文档、Digital Applied 深度评测、TheAIGRID/Pro Level AI Academy 的视频教程,以及 r/hermesagent 社区实战经验。工具版本更新频繁,部署前请核实最新文档。

#AI创业 #Agent工坊 #HermesAgent #Tailscale #远程部署 #一人公司

本文由AI辅助创作,经人工审核编辑发布