Hermes Agent 进阶教程:服务器安全防护3项必做
Hermes Agent 用的人不少,但真正关注使用安全的,恐怕没几个。你的聊天记录、个人信息,甚至密码密钥,如果不做基础防护,随时可能暴露在风险中。
这篇文章就分两部分,教你把 Hermes Agent 打造成密不透风的安全屋。你只管安心用,剩下的交给设置。
第一部分:服务器安全。不管你的 Agent 跑在本地还是远程服务器,基本的防护必须到位,这是数据安全的第一道防线。
第二部分:数据备份。天灾人祸谁也说不准,就算服务器在云端,也可能出意外导致数据不可用。关键资料一定要备份,这样出问题时能随时恢复。
服务器安全设置
用 Agent 最怕的不是机器出了毛病你发现,而是机器已经出问题你却浑然不觉。所以提前防护,比事后补救重要得多。下面以 Linux 服务器为例,说说怎么加固安全。
不会复杂命令没关系,把下面的提示词丢给 AI 操作就行。但注意,动手之前一定要把注意事项读完。
公网环境有多恶劣?默认的 22 端口和密码登录,简直就是黑客脚本的靶子。想让服务器不变成肉鸡,下面三项配置必须做。
1、修改 SSH 默认端口:
请检查当前 Linux 系统和 SSH 配置,备份配置文件后,从 20000–65535 中选择一个未占用的端口并修改 SSH 配置。先放行新端口并暂时保留 22 端口,执行配置检查后重新加载 SSH,确认新端口正在监听。最后给出新端口的登录测试命令和回滚方法;遇到错误立即停止。
2、禁用密码登录:
请检查当前用户的 SSH 公钥和 authorized_keys 权限。如果没有公钥,指导我在本地生成 Ed25519 密钥,我只会提供公钥,绝不提供私钥。备份 SSH 配置,启用密钥认证;等我在另一个终端确认密钥登录成功后,再关闭密码和交互式认证。修改后检查配置、重新加载服务,并给出验证结果和回滚方法。
3、配置防火墙与 Fail2Ban:
请检查服务器当前的防火墙、SSH 端口和正在使用的业务端口。备份现有规则,先放行新的 SSH 端口和必要业务端口,再启用 UFW,设置为默认拒绝入站、允许出站。随后安装并配置 Fail2Ban 保护新的 SSH 端口,使用 maxretry=5、findtime=10m、bantime=1h,并检查防火墙、Fail2Ban 和 SSH 是否正常。不要覆盖现有规则,最后给出配置结果和回滚方法。
数据备份
数据备份方式很多,但最安全高效的,还得是 GitHub 仓库。理由有两个:
1、只需要一个邮箱就能注册,提供账号和 API Key 授权方式,管理仓库和内容非常方便。官方工具 gh 接口完善,AI 可以自主完成操作。
2、用 GitHub 基本上是 AI 必备技能,上面有大量开源工具和项目,不管是学习还是找软件,都是不二之选。
登录账户
官方提供了两种登录方式:一是直接用账户名和密码,二是创建一个 API Key。两种各有优劣。
第一种方式简单,但权限过大,可能造成项目间影响和污染。如果只有一个项目倒无所谓,有多个账户就不推荐了。
第二种方式复杂一点,需要去后台申请对应权限的 API Key,可以设置权限范围和项目范围,精确控制它能做什么、不能做什么,颗粒度很细。
1、登录 GitHub,选择设置菜单
2、选择 Developer settings
3、创建 API Key(选择 Personal access tokens → Fine-grained tokens)
拿到 API Key 后,登录方式类似,最好选择 Auth Token 方式,填入对应的 API Key 即可。
自动化备份
前面都准备好后,用一句话就能让 Hermes Agent 完成自动备份定时任务。
但在此之前,需要划分清楚哪些文件夹要备份,哪些不需要。否则把所有内容都塞进去,备份效率低,而且 GitHub 仓库有容量上限,必须简单划分。
需要备份的内容
一句话总结:你手工维护的资产,唯一且不可重复产生的内容。这里直接帮你整理好了。
SOUL.md AI 的性格属性
config.yaml 基础的配置项
skills/ 你自己的技能库
scripts/ 自定义的脚本
wiki / 观点库 观点沉淀(不是每个人都有)
cron/jobs.json(任务定义) 自动化任务
这里列出的每一项都是独一无二的,每个人的 Hermes Agent 中这几个文件夹都可能不一样。丢了一个基本上没法还原,除非你花时间重做一遍。所以这部分必须备份。
不需要备份的内容
一句话:不备份“运行时自动生成的东西”。这些可能是系统自带或运行中产生的过渡文件,不影响整体使用,删了也没关系。
.env 环境配置,保存了你的密钥,基于保密不推荐备份。
auth.json 授权信息
sessions/ 所有的聊天内容和信息,如果想回溯信息,也可以做备份。
logs/ 运行过程中产生的日志
cache/ 缓存内容
executions.db / ticker / locknode / lsp / 依赖安装产物
设置备份自动化任务
区分好之后,备份就简单了。告诉 Hermes Agent 设置一条定时任务,每天凌晨三点自动运行一次。直接使用下面的提示词,让 AI 帮你自动设置。
每天对 Hermes 做一次轻量配置备份,只保留可重建能力,不备份运行时垃圾和敏感凭据。
备份范围:
1. 主 profile 的 SOUL.md 和 config.yaml
2. research / publish / shortvideo-pipeline 的 SOUL.md 和 config.yaml(如果存在)
3. ~/.hermes/skills/
4. ~/.hermes/scripts/
5. /root/hermes-wiki
6. ~/.hermes/vault/opinions/(如果存在)
7. 各 profile 的 cron/jobs.json(任务定义;如果存在)
不要备份:
- .env
- auth.json
- sessions/
- state.db
- logs/
- cache/
- executions.db
- ticker / lock 文件
- node / lsp / 安装产物
执行要求:
- 目标仓库:/root/hermes-backup
- 用同步方式覆盖旧内容,源不存在就删除目标对应文件
- git add -A
- 只有有变更时才 commit 和 push
- commit message: auto backup YYYY-MM-DD_HH:MM
- 失败时输出明确错误,不要静默吞掉
配置好之后,隔天一定要去 GitHub 仓库查看是否备份成功。这也是为什么最后一句强调“失败时输出明确错误,不要静默吞掉”。这里有个坑需要提醒:有一次设置好定时任务,它没执行成功,却没有报错,导致我以为一直成功。所以配置完隔天务必确认,别再踩一遍。
写在最后
做好基本的安全防护和定时任务备份,你就可以安心使用 Hermes Agent,基本不用担心信息泄露和数据丢失的风险。
只有经历过数据丢失或被黑的人,才知道这两点有多重要。不要等出了问题再找补救方法,一定要未雨绸缪,做什么事都准备后手。
希望大家能学到真东西。安全防护和备份都做到位,剩下的就放心用吧。