让 AI Agent 真正"动手"操作你的电脑


云端部署的 Hermes Agent 只能给建议,碰不到你电脑上的文件。本文介绍如何用 Tailscale + SSH 打通云端和本地,让 AI 真正帮你干活。全程约 30 分钟,包含 Tailscale 组网、Windows SSH 配置、防火墙设置、常见坑点排查。


背景与需求

你对 Hermes 说"帮我整理一下桌面上的 PDF 文件",它却只能告诉你怎么操作,而无法真正执行。

这是云端部署 AI Agent 的典型痛点。Hermes 跑在服务器上,能调 API、能搜索、能写代码,但碰不到你电脑上的文件。想让它帮你整理文档、修改脚本、清理垃圾进程?不好意思,它只能给建议。

打通云端和本地的价值就在这里:让 AI 不只是"说",还能"做"。

云端部署 Hermes Agent 的优势

既然要打通,为什么不直接在电脑上部署 Hermes?

几个原因:

24/7 在线。你的电脑会关机、会休眠,服务器不会。半夜想起来让 Hermes 帮你查点东西,服务器随时待命。

稳定的网络环境。服务器有公网 IP,带宽稳定。你的家用网络可能有 NAT、有动态 IP,折腾起来麻烦。

多设备访问。手机、平板、其他电脑,都能通过同一个 Hermes 实例操作你的工作电脑。

不占用本地资源。Hermes 本身不算重,但加上各种依赖、模型推理、日志存储,还是放在服务器上清爽。

技术方案选择

打通云端和本地,常见方案有几种:

Tailscale + SSH。零配置组网,加密隧道,密钥认证。这是我最终选择的方案。

frp 内网穿透。需要自己折腾服务端,配置比较麻烦。

SSH 反向隧道。需要一台有公网 IP 的中转服务器。

Tailscale 的优势在于简单。两端装好客户端,登录同一个账号,自动组网。不需要公网 IP,不需要开端口,不需要配路由器。加密隧道由 Tailscale 自动管理,安全性也有保障。

前置准备

开始之前,确认你有这些东西:

服务器端: - 一台 Linux 服务器(本文用 Ubuntu 24.04) - 已安装 Hermes Agent - root 或 sudo 权限

本地电脑: - Windows 10/11 系统(本文以 Windows 为例,Mac/Linux 配置更简单,可参考官方文档) - 管理员权限

账号: - Tailscale 账号(免费,支持 Google/GitHub 登录,免费版支持最多 100 台设备)

Tailscale 组网

Tailscale 是一个零配置的 VPN 服务。它基于 WireGuard 协议,自动处理 NAT 穿透、密钥交换、路由配置。你只需要装客户端、登录账号,其他事情它帮你搞定。

服务器端安装

curl -fsSL https://tailscale.com/install.sh | sh
sudo tailscale up

执行后会给你一个认证链接,浏览器打开登录即可。

# 验证状态
tailscale status

看到类似这样的输出就说明成功了:

100.x.x.x   your-server   your-account@   linux   -

那个 100.x.x.x 就是你的 Tailscale IP。

工作电脑端安装

tailscale.com/download 下载 Windows 客户端,安装后登录同一个账号。

同样,客户端会分配一个 Tailscale IP,比如 100.x.x.x

验证网络连通性

在服务器上 ping 你的电脑:

ping -c 3 100.x.x.x

如果能通,说明组网成功。延迟通常在 30-50ms,很稳定。

Windows SSH Server 配置

组网通了,接下来配置 SSH。这是整个过程中坑最多的部分。

安装 OpenSSH Server

以管理员身份打开 PowerShell:

Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
Start-Service sshd
Set-Service -Name sshd -StartupType 'Automatic'

安装完成后,SSH 服务就启动了。

服务器生成密钥对

回到服务器,生成一对专用于连接 Windows 的密钥:

ssh-keygen -t ed25519 -f ~/.ssh/id_windows -C "hermes@windows" -N ""

生成后查看公钥:

cat ~/.ssh/id_windows.pub

输出类似:

ssh-ed25519 AAAAC3NzaC1lZDI1NTE5... hermes@windows

公钥配置——管理员组的坑

这是最容易踩的坑。

如果你的 Windows 用户属于管理员组(大多数人都是),SSH 不会读取用户目录下的 .ssh/authorized_keys,而是读取 C:\ProgramData\ssh\administrators_authorized_keys

查看配置文件:

Get-Content C:\ProgramData\ssh\sshd_config | Select-String "Match" -Context 3

你会看到:

Match Group administrators
       AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys

这意味着管理员组的用户,公钥要放在 administrators_authorized_keys 里。

把服务器的公钥写入(注意:用 Add-Content 而不是 Set-Content,避免覆盖已有公钥):

Add-Content C:\ProgramData\ssh\administrators_authorized_keys "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5... hermes@windows"

文件权限设置

Windows SSH 对文件权限很挑剔。权限不对,认证就会失败。

icacls C:\ProgramData\ssh\administrators_authorized_keys /inheritance:r
icacls C:\ProgramData\ssh\administrators_authorized_keys /grant:r "SYSTEM:(F)"
icacls C:\ProgramData\ssh\administrators_authorized_keys /grant:r "Administrators:(F)"
icacls C:\ProgramData\ssh\administrators_authorized_keys /grant:r "YourUsername:(R)"

YourUsername 换成你的 Windows 用户名。

启用公钥认证,禁用密码认证

编辑 sshd_config:

$content = Get-Content C:\ProgramData\ssh\sshd_config
$content = $content -replace '#PubkeyAuthentication yes', 'PubkeyAuthentication yes'
$content = $content -replace '#PasswordAuthentication yes', 'PasswordAuthentication no'
$content | Set-Content C:\ProgramData\ssh\sshd_config

Restart-Service sshd

禁用密码认证是安全考虑。只允许密钥登录,暴力破解就失效了。

防火墙配置

SSH 端口默认是 22。如果不做限制,任何人都能尝试连接你的电脑。

Windows 安装 OpenSSH Server 时会自动创建一条允许任意来源访问 22 端口的默认规则。先禁用它,再添加只允许服务器 IP 的规则:

Disable-NetFirewallRule -Name "OpenSSH-Server-In-TCP"
New-NetFirewallRule -Name "SSH-Tailscale" -DisplayName "SSH (Tailscale Only)" -Direction Inbound -Protocol TCP -LocalPort 22 -RemoteAddress 100.x.x.x -Action Allow

100.x.x.x 换成你服务器的 Tailscale IP。

这样只有你的服务器能通过 SSH 连接你的电脑,其他人都不行。

验证连接

配置完成,测试一下:

ssh -i ~/.ssh/id_windows -o StrictHostKeyChecking=no YourUsername@100.x.x.x "echo 连接成功 && hostname"

如果看到 连接成功 和你的电脑名,就说明搞定了。

测试文件操作:

ssh -i ~/.ssh/id_windows YourUsername@100.x.x.x "dir C:\Users\YourUsername\Desktop"

能看到桌面上的文件,说明通道打通了。

接入 Hermes Agent

SSH 通道打通后,Hermes 就能通过这个通道执行命令、读写文件。

Hermes 本身支持 SSH 连接,你只需要告诉它目标机器的 IP、用户名和密钥路径。之后它就能像操作本地文件一样操作你电脑上的文件。

应用场景

打通之后,Hermes 能直接操作你电脑上的文件。这才是它真正有用的地方。

写报告。让 Hermes 帮你起草报告、方案、总结,写完直接保存到指定目录。不用你手动复制粘贴。

收集资料。告诉它你需要什么信息,它帮你搜索、整理、汇总,生成一份完整的资料文档,直接放桌面。

处理数据。丢给它一个 Excel 文件,它帮你提取数据、生成报表,结果直接放桌面。

整理文件。桌面上文件乱七八糟?让 Hermes 帮你按类型、按日期分类归档。

这些事情,必须能访问你的本地文件系统才能做到。打通之后,Hermes 就能直接帮你完成。

常见问题排查

Tailscale 连接失败

症状:ping 不通对方 IP

排查: - 确认两端都登录了同一个账号 - 确认 Tailscale 服务正在运行:tailscale status - 检查防火墙是否阻止了 Tailscale 流量

SSH 认证失败

症状Permission denied (publickey,keyboard-interactive)

排查: - 确认公钥写入了正确的文件(管理员组用 administrators_authorized_keys) - 确认文件权限正确(SYSTEM 完全控制,管理员完全控制,用户只读) - 确认 sshd_config 中 PubkeyAuthentication yes 没有被注释 - 查看 Windows 事件日志:Get-WinEvent -LogName "OpenSSH/Operational" -MaxEvents 5

管理员组的坑

症状:公钥明明写入了 .ssh/authorized_keys,但认证失败

原因:Windows SSH 对管理员组有特殊处理,会读取 C:\ProgramData\ssh\administrators_authorized_keys 而不是用户目录下的文件

解决:把公钥写入 administrators_authorized_keys

网络延迟过高

症状:SSH 连接很慢,命令执行延迟大

排查: - 检查 Tailscale 是否走了中继(relay)而不是直连 - tailscale status 查看连接类型 - 如果是中继,可能需要检查 NAT 穿透情况

安全考虑

这套方案的安全性怎么样?

密钥认证。不用密码,只用密钥。暴力破解无效。

防火墙限制。SSH 端口只对服务器 IP 开放,其他人连不上。

Tailscale 加密隧道。所有流量都经过加密,不会被中间人窃听。

操作前确认。Hermes 在执行文件修改、删除等操作前,会先告诉你,让你确认。

整体来说,这套方案比直接暴露 SSH 端口到公网安全得多。

总结与展望

打通云端 Hermes 和本地电脑后,AI Agent 的能力边界一下子扩大了。它不再是一个只能给建议的顾问,而是一个能真正帮你干活的助手。

这套方案适用于: - 需要 AI 帮你管理本地文件的场景 - 需要远程执行命令的场景 - 需要 24/7 在线的 AI 助手

后续可以优化的方向: - 自动重连机制 - 更细粒度的权限控制 - 多台电脑的统一管理