跳转到主内容
websoft网络软件专家 - 深耕网络技术,打造实用软件!

HermesAgent接入SSH远程服务器:免密登录配置与远程指令执行

Hermes Agent可通过SSH免密登录远程服务器执行指令:先在本地生成ED25519密钥对并上传公钥至远程authorized_keys;再配置远程sshd_config启用PubkeyAuthentication、禁用PasswordAuthentication;最后在Hermes config.yaml中指定host、user、key_path或使用ssh-agent统一托管。

☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜如果您希望 Hermes Agent 通过 SSH 连接远程服务器并执行指令,但每次连接均需手动输入密码,则说明远程认证仍依赖密码机制。以下是实现 Hermes Agent 接入 SSH 远程服务器并完成免密登录与指令执行的多种配置路径:

一、在 Hermes Agent 所在主机生成密钥对并上传公钥

该方法适用于 Hermes Agent 部署于 Linux 服务器(如腾讯云 Lighthouse)场景,通过本地生成密钥、上传至目标远程服务器的 authorized_keys 实现认证绕过。

1、SSH 登录运行 Hermes Agent 的服务器(例如:ssh root@hermes-server-ip)。

2、执行密钥生成命令,优先选用更安全的 ED25519 算法:ssh-keygen -t ed25519 -C "hermes@agent" -f ~/.ssh/id_ed25519 -N ""

3、确认公钥已生成:

cat ~/.ssh/id_ed25519.pub 4、将输出的公钥内容完整复制,然后使用密码方式登录目标远程服务器:ssh user@remote-server-ip

5、在远程服务器上执行以下三行命令(顺序不可调换):

mkdir -p ~/.ssh chmod 700 ~/.ssh echo "粘贴此处为刚复制的公钥内容" >> ~/.ssh/authorized_keys

6、立即设置授权文件权限:

chmod 600 ~/.ssh/authorized_keys

二、配置远程服务器 SSH 服务启用密钥认证并禁用密码登录

该步骤确保远程服务器明确接受公钥认证,并关闭不安全的密码验证通道,防止 Hermes Agent 在后续调用中意外回落至密码提示。

1、以管理员身份编辑远程服务器的 SSH 主配置文件:sudo nano /etc/ssh/sshd_config

2、确认以下参数值已启用或修改为如下状态:

PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys PasswordAuthentication no PermitRootLogin yes(若 Hermes 使用 root 账户连接)

3、保存后重启 SSH 服务:sudo systemctl restart sshd

4、

关键验证:在 Hermes Agent 主机执行 ssh -o ConnectTimeout=5 -o BatchMode=yes user@remote-server-ip,应直接进入 shell 而不提示输入密码

三、在 Hermes Agent 中配置远程执行任务使用指定私钥

Hermes Agent 默认使用系统默认 SSH 行为,需显式指定私钥路径与用户,避免因环境差异导致认证失败。

1、确认 Hermes Agent 已安装并初始化完成:hermes init 2、编辑 Hermes Agent 的任务配置文件(通常位于 ~/.hermes/config.yaml 或任务定义 YAML 中)。

HermesAgent(v2026.4.8) Hermes Agent (v0.8.0) 是由 Nous Research 开发的开源自进化 AI 智能体,被誉为“与你共同成长的 Agent”。其核心优势在于内置学习闭环,能从任务中自动提炼技能、持久记忆用户偏好,越用越懂你。该版本聚焦“智能”升级,支持后台任务自动通知、模型实时切换及 MCP OAuth 2.1。它兼容 200+ 主流大模型,支持微信、Telegram 等多平台接入,仅需 5 美元 VPS 即可部署,是提升个人与企业生产力的理想选择。

下载3、在远程执行类 action 定义中,加入 ssh 参数块:ssh:host: remote-server-ip user: user key_path: /root/.ssh/id_ed25519 port: 22

4、

注意:key_path 必须为绝对路径,且 Hermes 进程用户对该私钥文件具有读取权限(chmod 600)

5、保存配置后,触发一次远程指令任务测试:

hermes run --task your-remote-task-name

四、使用 SSH Agent 全局托管私钥(适用于多目标服务器)

当 Hermes Agent 需同时管理多个远程服务器时,通过 ssh-agent 统一加载私钥可避免在每个任务中重复声明 key_path,提升配置复用性与安全性。

1、在 Hermes Agent 主机启动持久化 ssh-agent:eval "$(ssh-agent -s)"2、将私钥添加至 agent:ssh-add ~/.ssh/id_ed25519

3、确认私钥已加载:

ssh-add -l 4、在 Hermes Agent 的环境变量中注入 SSH_AUTH_SOCK(例如写入 ~/.bashrc 或 systemd service 文件):export SSH_AUTH_SOCK="/tmp/ssh-XXXXXX/agent.XXXX"

5、

验证:在 Hermes Agent 运行环境中执行 ssh user@remote-server-ip,应无需密码且不依赖 key_path 显式配置

五、MacOS 远程主机特别适配:启用服务与权限加固

若目标远程服务器为 macOS 系统,其 SSH 服务默认关闭且权限策略更严格,需额外完成系统级启用与路径校准。

1、在 macOS 远程主机上打开「系统设置」→「通用」→「共享」,勾选「远程登录」,并确认下方显示类似 ssh user@192.168.x.x 的提示。

2、检查防火墙是否放行端口 22:「系统设置」→「网络」→「防火墙」→「防火墙选项」→ 确保“远程登录 (sshd)”处于启用状态。

3、手动创建并设置远程主机的 ~/.ssh 目录权限(macOS 对权限异常敏感):mkdir -p ~/.ssh chmod 700 ~/.ssh touch ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys 4、将 Hermes Agent 主机生成的公钥内容追加至 macOS 的 authorized_keys:echo "ssh-ed25519 AAAA... hermes@agent" >> ~/.ssh/authorized_keys

5、

必须执行:在 macOS 上运行 sudo chmod -R g-w,o-w ~/.ssh,否则 sshd 将静默拒绝密钥认证

相关文章