为什么Hermes Agent阻止scp | AI生成和翻译

Home 2026.05

问题: 为什么 scp 命令被 Hermes agent 阻止了?

回答:

scp 命令被阻止是因为 Hermes(以及其底层的 Claude Code)默认将 scp 视为潜在危险的网络命令。具体原因如下:


1. scp 位于默认拒绝列表中

Claude Code 的常见安全配置会明确将 Bash(scp *) 加入拒绝列表,与 ssh *curl *wget *kubectl apply *terraform apply * 等命令并列——所有这些命令都可能泄露数据或连接远程主机。

这意味着如果你的 Hermes 或 Claude Code 设置中 scp 处于拒绝规则内,任何 scp 命令都会自动被拒绝,无论意图如何


2. Claude Code “失败即关闭”的安全设计

Claude Code 默认使用严格的只读权限。当需要执行额外操作(如运行 shell 命令)时,它会请求明确许可。系统设计为“失败即关闭”:未匹配或不允许的命令默认需要人工批准或直接被阻止。

scp 通过 SSH 将文件传输到远程主机,这恰恰是安全系统要防止的网络泄露途径。


3. 网络到远程主机的命令风险较高

Claude Code 默认阻止那些通过网络获取或发送内容的高风险命令。所有发起网络请求的命令都需要用户批准。

scp 到远程主机 lzw@192.168.1.36 这样的操作完全属于此类——它通过网络将本地文件发送到远程机器。


4. Hermes agent 无法代你运行该命令

Hermes agent 在沙盒环境中运行。即使你想让它执行 scp,agent 也会:

因此,Hermes 正确地告诉你:“你需要自己运行它。” 这是预期内的安全行为,而非 Bug。


如何自己运行

只需复制提供的命令并在你自己的终端中运行:

scp "/Users/lzwjava/Documents/TencentMeeting/2026-05-17 10.30.30 Started by Zhiwei Li 992874154/meeting_01.mp4" lzw@192.168.1.36:~/projects/private-projects/whisper-playground/

这会使用你的凭证和 SSH 密钥运行,这是正确且安全的方式。

参考资料:


Back Donate