mid*_*nok 22 systemd ssh-agent
如何将ssh-agent作为systemd服务启动?网上有一些建议,但都不完整。
如果ssh-agent服务启动成功,如何自动添加未加密的密钥?可能,从列表中添加键~/.ssh/.session-keys会很好。
之后如何SSH_AUTH_SOCK在任何登录会话中进行设置?最正确的方法是将它从ssh-agent服务推送到systemd-logind服务(不知道是否有可能)。简单天真的方法就是将它添加到/etc/profile.
小智 41
要创建 systemd ssh-agent 服务,您需要在其中创建一个文件,~/.config/systemd/user/ssh-agent.service因为 ssh-agent 是用户隔离的。
[Unit]
Description=SSH key agent
[Service]
Type=simple
Environment=SSH_AUTH_SOCK=%t/ssh-agent.socket
ExecStart=/usr/bin/ssh-agent -D -a $SSH_AUTH_SOCK
[Install]
WantedBy=default.target
Run Code Online (Sandbox Code Playgroud)
添加SSH_AUTH_SOCK DEFAULT="${XDG_RUNTIME_DIR}/ssh-agent.socket"到~/.pam_environment.
最后启用并启动此服务。
systemctl --user enable ssh-agent
systemctl --user start ssh-agent
Run Code Online (Sandbox Code Playgroud)
并且,如果您使用高于 7.2 的 ssh 版本。 echo 'AddKeysToAgent yes' >> ~/.ssh/config
这将指示 ssh 客户端始终将密钥添加到正在运行的代理,因此无需事先 ssh 添加它。
请注意,当您创建~/.ssh/config文件时,您可能需要运行:
chmod 600 ~/.ssh/config
或者
chown $USER ~/.ssh/config
否则,您可能会收到Bad owner or permissions on ~/.ssh/config错误消息。
| 归档时间: |
|
| 查看次数: |
16865 次 |
| 最近记录: |