You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

运行SSH Agent服务时出现「Could not open a connection to your authentication agent」错误

SSH-Agent Systemd服务运行正常但ssh-add无法连接的问题

配置与现状

为自动管理SSH密钥以访问GitHub,我配置了如下systemd用户服务单元文件:

[Unit]
Description=SSH key agent

[Service]
Type=exec
Environment=SSH_AUTH_SOCK=%t/ssh-agent.socket
Environment=DISPLAY=:0
ExecStart=/usr/bin/ssh-agent -D -a $SSH_AUTH_SOCK
ExecStartPost=/usr/bin/ssh-add $GITHUBSSH

[Install]
WantedBy=default.target

执行systemctl --user status ssh-agent.service确认服务已正常运行:

● ssh-agent.service - SSH key agent
     Loaded: loaded (/home/myUser/.config/systemd/user/ssh-agent.service; enabled; preset: enabled)
     Active: active (running) since Fri 2024-10-25 20:10:27 EDT; 18h ago
 Invocation: 0b625b5fa3ed4386ab696da6979876ac
   Main PID: 2044 (ssh-agent)
      Tasks: 1 (limit: 16673)
     Memory: 1.7M (peak: 3.2M)
        CPU: 31ms
     CGroup: /user.slice/user-1001.slice/user@1001.service/app.slice/ssh-agent.service
             └─2044 /usr/bin/ssh-agent -D -a /run/user/1001/ssh-agent.socket

Oct 25 20:10:27 fitzgeraldManjaro systemd[2010]: Starting SSH key agent...
Oct 25 20:10:27 fitzgeraldManjaro ssh-agent[2044]: SSH_AUTH_SOCK=/run/user/1001/ssh-agent.socket; export SSH_AUTH_SOCK;
Oct 25 20:10:27 fitzgeraldManjaro ssh-agent[2044]: echo Agent pid 2044;
Oct 25 20:10:27 fitzgeraldManjaro ssh-add[2047]: Identity added: /home/myUser/.ssh/fitzgeraldManjaroGithub (myemail@address.com)
Oct 25 20:10:27 fitzgeraldManjaro systemd[2010]: Started SSH key agent.

ps -aux | grep 'ssh'也确认PID 2044的ssh-agent进程正在运行,但执行ssh-add -l时会报错:Could not open a connection to your authentication agent。手动执行eval "$(ssh-agent -s)"启动新进程后可正常添加密钥,但杀死该进程后ssh-add -l又会提示Error connecting to agent: No such file or directory。另一台配置相同的机器可正常自动加载密钥,无需手动执行eval命令。

问题原因

systemd服务中设置的SSH_AUTH_SOCK环境变量仅在服务进程内部生效,并未同步到用户的shell会话中,导致ssh-add无法找到正确的socket路径。

解决方法

方法1:修改shell配置文件

编辑你使用的shell配置文件(如~/.bashrc、~/.zshrc或~/.profile),添加以下内容:

export SSH_AUTH_SOCK="$XDG_RUNTIME_DIR/ssh-agent.socket"

保存后执行source ~/.bashrc(对应你的shell),或重新打开终端,再次执行ssh-add -l即可验证。

方法2:通过systemd环境目录全局生效

创建~/.config/environment.d/90-ssh-agent.conf文件,写入:

SSH_AUTH_SOCK=${XDG_RUNTIME_DIR}/ssh-agent.socket

systemd用户会话会自动加载该目录下的环境变量配置,无需修改shell配置,重启会话后即可生效。

内容的提问来源于stack exchange,提问作者user968270

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 21:57:21