Hermes Agent 接入 SSH 远程服务器:免密登录配置与远程指令执行 当 Hermes Agent 需要通过 SSH 连接远程服务器执行指令时,频繁的密码验证会阻碍自动化流程。切换到密钥认证模式是实现高效、免密登录与自动化指令执行的关键。本文将详细解析配置 SSH 免密登录的完整路径,帮助

当 Hermes Agent 需要通过 SSH 连接远程服务器执行指令时,频繁的密码验证会阻碍自动化流程。切换到密钥认证模式是实现高效、免密登录与自动化指令执行的关键。本文将详细解析配置 SSH 免密登录的完整路径,帮助 Hermes Agent 顺畅连接远程服务器。
长期稳定更新的攒劲资源: >>>点此立即查看<<<
此方法适用于 Hermes Agent 部署在 Linux 服务器(例如腾讯云轻量应用服务器)的场景。核心步骤是在 Agent 所在主机生成密钥对,并将公钥部署到目标服务器。
首先,登录运行 Hermes Agent 的服务器:ssh root@hermes-server-ip。
接着,使用 ED25519 算法生成密钥对,安全性更高:ssh-keygen -t ed25519 -C “hermes@agent” -f ~/.ssh/id_ed25519 -N “”。
生成后,查看并复制公钥内容:cat ~/.ssh/id_ed25519.pub。
然后,使用密码登录一次目标远程服务器:ssh user@remote-server-ip。
登录成功后,在远程服务器上依次执行以下命令:
mkdir -p ~/.ssh
chmod 700 ~/.ssh
echo “此处粘贴复制的公钥内容” >> ~/.ssh/authorized_keys
最后,设置授权文件的严格权限,这是配置成功的重要环节:chmod 600 ~/.ssh/authorized_keys。
上传公钥后,需配置远程服务器的 SSH 服务,确保其启用密钥认证并建议禁用密码登录,以提升安全性。
以管理员身份编辑 SSH 主配置文件:sudo nano /etc/ssh/sshd_config。
找到并确认以下关键参数设置为指定状态:
PubkeyAuthentication yesAuthorizedKeysFile .ssh/authorized_keysPasswordAuthentication no (建议禁用密码登录)PermitRootLogin yes保存退出后,重启 SSH 服务使配置生效:sudo systemctl restart sshd。
进行关键验证:返回 Hermes Agent 主机,执行 ssh -o ConnectTimeout=5 -o BatchMode=yes user@remote-server-ip。配置正确将直接进入远程 shell,无密码提示。
服务器端配置完成后,需在 Hermes Agent 的任务配置中明确指定私钥路径。
首先,确保 Hermes Agent 已完成安装与初始化(通常通过 hermes init 命令)。
然后,编辑 Hermes Agent 的任务配置文件(如 ~/.hermes/config.yaml 或具体任务 YAML 文件)。
在远程执行任务的定义部分,加入清晰的 SSH 参数配置块:
ssh:
host: remote-server-ip
user: user
key_path: /root/.ssh/id_ed25519
port: 22
注意:key_path 需使用绝对路径,并确保运行 Hermes 进程的用户有读取该私钥文件的权限(使用 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 的运行环境能感知到 agent。通常需将 SSH_AUTH_SOCK 环境变量注入 Agent 环境,例如写入 ~/.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 的连接信息。
接着,检查防火墙设置,确保放行 22 端口:进入「系统设置」→「网络」→「防火墙」→「防火墙选项」,确认“远程登录 (sshd)”在允许列表中。
然后,手动创建 ~/.ssh 目录并设置正确权限:
mkdir -p ~/.ssh
chmod 700 ~/.ssh
touch ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
之后,将 Hermes Agent 主机的公钥内容追加到 authorized_keys 文件:echo “ssh-ed25519 AAAA… hermes@agent” >> ~/.ssh/authorized_keys。
关键操作:在 macOS 上执行 sudo chmod -R g-w,o-w ~/.ssh,移除目录及文件对组和其他用户的写权限。权限过松可能导致 sshd 静默拒绝密钥认证。
侠游戏发布此文仅为了传递信息,不代表侠游戏网站认同其观点或证实其描述