我有一个systemd
用户服务文件~/.config/systemd/user/ssh-agent.service
,其目的是确保我始终处于ssh-agent
运行状态,并将特定的无密码 SSH 密钥加载到其中。它目前看起来像这样:
[Unit]
Description=SSH key agent
[Service]
Type=oneshot
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 $MYSSH
[Install]
WantedBy=default.target
在我的系统启动后,我检查是否ssh-agent
已启动ps -aux | grep "ssh"
,并返回以下内容:
myuser 535 0.0 0.0 8008 5104 ? Ss 15:22 0:00 /usr/bin/ssh-agent -D -a /run/user/1000/ssh-agent.socket
但是,当我检查密钥是否已按预期添加时ssh-add -l
,我得到了The agent has no identities.
现在,我可以验证/usr/bin/ssh-add $MYSSH
手动执行是否符合我的预期,因此这似乎不是问题。因此,我使用以下命令检查服务状态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: activating (start) since Tue 2024-09-17 15:22:27 EDT; 1h 18min ago
Invocation: 6509facc63a8488780f5674e11c865f6
Main PID: 535 (ssh-agent)
Tasks: 1 (limit: 8976)
Memory: 1.1M (peak: 1.5M)
CPU: 6ms
CGroup: /user.slice/user-1000.slice/user@1000.service/app.slice/ssh-agent.service
└─535 /usr/bin/ssh-agent -D -a /run/user/1000/ssh-agent.socket
Sep 17 15:22:27 mySystem systemd[525]: Starting SSH key agent...
Sep 17 15:22:27 mySystem ssh-agent[535]: SSH_AUTH_SOCK=/run/user/1000/ssh-agent.socket; export SSH_AUTH_SOCK;
Sep 17 15:22:27 mySystem ssh-agent[535]: echo Agent pid 535;
我注意到ssh-add
这里没有提到命令,并且服务只是挂在该activating
状态,即使代理已启动并正在运行。
似乎该ExecStartPost
语句从未触发。我通过将该行更改为来测试该语句本身是否存在问题
ExecStartPost=/usr/bin/echo Hello, world.
并重新启动。Echo 从未执行,并且来自的响应systemctl --user status ssh-agent.service
与之前相同。
|