Hermes Agent 通过 SSH 连接远程服务器:配置密钥认证与自动化任务执行 当 Hermes Agent 需要 SSH

免费影视、动漫、音乐、游戏、小说资源长期稳定更新! 👉 点此立即查看 👈
当 Hermes Agent 需要 SSH 连接远程服务器执行自动化任务时,密码认证会中断流程。切换到基于密钥的认证是构建稳定自动化管道的标准实践。本指南将分步详解配置流程,确保 Hermes Agent 实现无缝的远程连接与指令执行。
此方案适用于 Hermes Agent 部署在独立 Linux 主机(例如云服务器)的环境。原理是在 Agent 端创建密钥对,并将公钥部署到目标服务器的授权列表中。
首先,登录运行 Hermes Agent 的服务器:ssh root@hermes-server-ip。
使用 ED25519 算法生成密钥对,该算法在安全性和性能上优于传统 RSA:ssh-keygen -t ed25519 -C “hermes@agent” -f ~/.ssh/id_ed25519 -N “”。
生成后,查看并复制公钥内容:cat ~/.ssh/id_ed25519.pub。
使用密码登录目标远程服务器:ssh user@remote-server-ip。
登录后,在远程服务器上执行以下命令序列,创建 SSH 目录并添加公钥:
mkdir -p ~/.ssh
chmod 700 ~/.ssh
echo “这里粘贴你刚才复制的公钥内容” >> ~/.ssh/authorized_keys
最后,设置授权文件的严格权限,这是 SSH 密钥认证的强制要求:chmod 600 ~/.ssh/authorized_keys。
部署公钥后,需配置 SSH 服务端以启用密钥认证并禁用密码登录,从而提升安全性与自动化可靠性。
以管理员身份编辑 SSH 守护进程配置文件:sudo nano /etc/ssh/sshd_config。
检查并确保以下参数配置正确:
PubkeyAuthentication yesAuthorizedKeysFile .ssh/authorized_keysPasswordAuthentication noPermitRootLogin yes保存文件并重启 SSH 服务以应用变更:sudo systemctl restart sshd。
执行连接测试:返回 Hermes Agent 主机,运行 ssh -o ConnectTimeout=5 -o BatchMode=yes user@remote-server-ip。成功配置后,系统将直接建立连接,无需密码交互。
服务端配置完成后,需在 Hermes Agent 的任务定义中明确指定连接凭证,确保任务执行的可预测性。
确认 Hermes Agent 已完成初始化(通常通过 hermes init)。
编辑 Agent 的任务配置文件(如 ~/.hermes/config.yaml 或项目特定的 YAML 文件)。
在远程执行任务(action)的配置部分,加入 SSH 参数块:
ssh:
host: remote-server-ip
user: user
key_path: /root/.ssh/id_ed25519
port: 22
关键点:key_path 必须使用绝对路径,并确保 Hermes Agent 进程用户对该私钥文件有读取权限(使用 chmod 600 设置)。
保存配置后,触发远程任务进行测试:hermes run --task your-remote-task-name。
当 Hermes Agent 需要管理多个远程目标时,为每个任务单独配置私钥路径效率低下。使用 SSH Agent 可实现私钥的集中托管与自动调用。
在 Hermes Agent 主机启动 SSH Agent 并设置环境变量:eval “$(ssh-agent -s)”。
将私钥添加到 Agent:ssh-add ~/.ssh/id_ed25519。
使用 ssh-add -l 验证私钥已成功加载。
确保 Hermes Agent 的运行时环境能访问 SSH Agent。通常需要将 SSH_AUTH_SOCK 环境变量持久化,例如写入 ~/.bashrc 或 systemd service 文件:export SSH_AUTH_SOCK=“/tmp/ssh-XXXXXX/agent.XXXX”。
配置完成后,在 Hermes Agent 环境中直接执行 ssh user@remote-server-ip 应能无密码连接。此后,任务配置中可省略 key_path 参数。
以 macOS 作为远程服务器时,需注意其 SSH 服务默认状态和更严格的权限模型,不当的权限设置会导致密钥认证静默失败。
在 macOS 主机启用 SSH 服务:进入「系统设置」→「通用」→「共享」,勾选「远程登录」。界面会显示类似 ssh user@192.168.x.x 的连接信息。
配置防火墙允许 SSH 连接:进入「系统设置」→「网络」→「防火墙」→「防火墙选项」,确保“远程登录 (sshd)”在允许列表中。
手动创建 SSH 目录并设置精确权限:
mkdir -p ~/.ssh
chmod 700 ~/.ssh
touch ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
将 Hermes Agent 主机的公钥追加到授权文件:echo “ssh-ed25519 AAAA… hermes@agent” >> ~/.ssh/authorized_keys。
执行关键权限加固:在 macOS 上运行 sudo chmod -R g-w,o-w ~/.ssh,移除目录及文件对组和其他用户的写权限。这是 macOS `sshd` 安全策略的常见要求,权限过宽将直接导致认证被拒。
菜鸟下载发布此文仅为传递信息,不代表菜鸟下载认同其观点或证实其描述。