agentmemory远程部署安全加固指南:HMAC密钥、Bearer令牌与HTTPS强制三件套 📅 发布时间:2026/8/31 7:42:10 👁 浏览次数: agentmemory远程部署安全加固指南HMAC密钥、Bearer令牌与HTTPS强制三件套【免费下载链接】agentmemory#1 Persistent memory for AI coding agents based on real-world benchmarks项目地址: https://gitcode.com/GitHub_Trending/age/agentmemoryagentmemory是专为 AI 编程代理打造的持久记忆服务基于真实世界基准测试排名第一能让 Claude Code、Cursor、Devin 等代理跨会话记住你的项目上下文。默认情况下它绑定本机回环地址、不设密码——但一旦把 agentmemory 部署到远程服务器供多人或云端代理访问就必须在三步内完成安全加固配置AGENTMEMORY_SECRET启用 Bearer 令牌认证、理解内置的 HMAC 恒定时间比较机制、用AGENTMEMORY_REQUIRE_HTTPS强制 HTTPS。本文带你用不到 10 分钟把远程部署的 agentmemory 变成带门禁的服务。为什么本地默认不设防远程必须加固agentmemory 的 REST API 默认绑定127.0.0.1本机访问无需任何凭证这是刻意的轻量设计。但远程部署后有两个真实风险未认证访问任何能到达 3111 端口的人都能读写你的全部记忆数据凭据被窃听Bearer 令牌和记忆内容在明文 HTTP 传输中可被网络中间人抓包。好消息是三条防线全部内置在 agentmemory 中你只需要设置环境变量无需改一行源码。第一步配置 AGENTMEMORY_SECRET一键启用 Bearer 令牌认证在服务端启动前设置环境变量即可export AGENTMEMORY_SECRET一串足够长的随机字符串服务启动时会在 src/index.ts 读取该密钥。一旦设置所有受保护的 REST 端点记忆读写、搜索、治理、导出等都要求请求头携带Authorization: Bearer secret否则返回 401所有官方 hook 脚本会话开始、工具调用前后、停止钩子等会自动读取同一个变量并附带令牌例如 src/hooks/post-tool-use.ts无需逐条配置独立 MCP 服务agentmemory/mcp会自动把令牌附加到对远端的每一次 REST 调用上见 src/mcp/rest-proxy.ts。MCP 端点的鉴权逻辑非常直观见 src/mcp/server.tsif (!sec) return null; // 未设置密钥则不鉴权仅适合本机 const auth req.headers?.[authorization] ?? req.headers?.[Authorization]; if (typeof auth ! string || !timingSafeCompare(auth, Bearer ${sec})) { return { status_code: 401, body: { error: unauthorized } }; }多实例同步Mesh同样受保护早期的 mesh push/pull 端点曾允许无认证请求项目标记为 HIGH 级修复见 CHANGELOG.md现在 mesh 同步在两端都强制要求AGENTMEMORY_SECRET见 src/functions/mesh.ts。第二步看懂内置 HMAC 比较——为什么它防得住时序攻击很多项目直接写received secret攻击者可通过观察响应耗时逐字符猜出密钥。agentmemory 在 src/auth.ts 中用了更稳妥的组合拳随机 32 字节 HMAC 密钥randomBytes(32)在进程启动时生成待比较的两个字符串分别经HMAC-SHA256摘要输出长度恒定为 32 字节——比较时间不再泄露原始字符串长度信息用 Node 内置的timingSafeEqual做恒定时间字节比较杜绝逐字符计时侧信道。const hmacA createHmac(sha256, hmacKey).update(a).digest(); const hmacB createHmac(sha256, hmacKey).update(b).digest(); return timingSafeEqual(hmacA, hmacB);你不需要做任何事这套机制已内置于所有 Bearer 校验路径属于免费获得的加固。第三步AGENTMEMORY_REQUIRE_HTTPS 强制 HTTPS拒绝明文发送令牌即使令牌校验很严密如果走明文 HTTP 传输令牌照样能被抓包。agentmemory 的官方集成Hermes、OpenClaw、pi 等内置了明文 Bearer 守卫目标地址是https://或指向本机回环localhost/127.0.0.1/::1——放行目标是明文 HTTP 的远程地址——默认先打印警告Bearer tokens and memory payloads can be observed on the network; use HTTPS or an SSH tunnel见 integrations/openclaw/plugin.mjs再设置AGENTMEMORY_REQUIRE_HTTPS1同一场景将直接抛错拒绝启动从机制上杜绝明文传输。export AGENTMEMORY_REQUIRE_HTTPS1Hermes 集成中同样的守卫位于 integrations/hermes/init.py。配套的回归测试 test/integration-plaintext-http.test.ts 覆盖了 localhost 放行、LAN IP 警告、https放行等全部分支。部署建议在 Cloudflare、Nginx 或平台托管层项目提供了 deploy/ 下 Coolify、Fly.io、Railway、Render 的官方 Dockerfile 与一键模板终止 TLS把 3111 端口藏在反向代理之后只对外暴露 443。锦上添花两条内置的额外防线Viewer 只绑定本机 每响应 CSP 随机 nonce可视化面板服务默认监听127.0.0.1且每个响应的 Content-Security-Policy 都使用一次性脚本 nonce 并禁用内联事件属性script-src-attr none构造见 src/auth.ts。通过 REST 访问的/agentmemory/viewer同样遵循 Bearer 令牌规则。️自动打码入库的密钥记忆写入前会经过隐私函数自动把Bearer xxx、各类 API key、GitHub token、JWT 等模式替换为[REDACTED_SECRET]见 src/functions/privacy.ts——即使对话内容误粘了令牌也不会存入长期记忆。远程部署安全核对清单检查项做法状态设置AGENTMEMORY_SECRET长随机字符串所有客户端统一✅ 必填启用AGENTMEMORY_REQUIRE_HTTPS1拒绝明文 HTTP 远程传输✅ 推荐反代 443 终结 TLS参考 deploy/ 模板✅ 推荐令牌恒定时间校验内置于 src/auth.ts自动生效Viewer 绑定与 CSP默认127.0.0.1 nonce自动生效记忆内容密钥打码内置于 src/functions/privacy.ts自动生效漏洞报告渠道走私有安全通道见 SECURITY.md了解一句话总结设好AGENTMEMORY_SECRET、打开AGENTMEMORY_REQUIRE_HTTPS1、把服务藏进 HTTPS 反代——三步之后你的远程 agentmemory 就同时拥有了 Bearer 令牌门禁、HMAC 恒定时间校验与传输层加密三重防护可以放心让云端代理长期连接。【免费下载链接】agentmemory#1 Persistent memory for AI coding agents based on real-world benchmarks项目地址: https://gitcode.com/GitHub_Trending/age/agentmemory创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考