Arch linux手动编写ssh-agent服务
步骤
1. 在systemd相关目录下编写service
spheenik的回答中,是将service写在~/.config/systemd/user/ssh-agent.service中。
我按照个人习惯,写到了/etc/systemd/user/ssh-agent.service中。
shell
[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
2. 设置环境变量
将服务导出的socket放到SSH_AUTH_SOCK变量中
shell
export SSH_AUTH_SOCK="$XDG_RUNTIME_DIR/ssh-agent.socket"
3. 启动并立即打开服务
需要加上--user参数,不然会提示找不到ssh-agent的service。
shell
systemctl --user enable ssh-agent
systemctl --user start ssh-agent
4. 修改sshconfig
在~/.ssh/config中添加AddKeyToAgent参数
properties
AddKeysToAgent yes
完整示例
properties
# 假设git远程url是git@xxxx:www
# 私钥文件路径为/my/pk/path.key
Host fakename
HostName xxxx
User git
AddKeysToAgent yes
IdentityFile /my/pk/path.key
5. 拉取代码
按照第4部的配置,拉取代码时需要将xxxx替换为fakename。
shell
git clone git@fakename:www