在 Arch Linux 上,以下工作非常好(应该适用于所有基于 systemd 的发行版):
通过将以下内容放入以下内容来创建 systemd 用户服务~/.config/systemd/user/ssh-agent.service
:
[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
将 shell 设置为具有套接字 ( .bash_profile, .zshrc, ...
) 的环境变量:
export SSH_AUTH_SOCK="$XDG_RUNTIME_DIR/ssh-agent.socket"
启用该服务,它会在登录时自动启动,然后启动它:
systemctl --user enable ssh-agent
systemctl --user start ssh-agent
将以下配置设置添加到本地 ssh 配置文件~/.ssh/config
(从 SSH 7.2 开始有效):
AddKeysToAgent yes
这将指示 ssh 客户端始终将密钥添加到正在运行的代理,因此无需事先 ssh-add。