如何在 systemd 服务中使用 git 凭证

如何在 systemd 服务中使用 git 凭证

git config --global credential.helper store我使用 Github 作为项目的远程存储库,为了节省时间,我执行了将密码存储在文件中的命令~/.git-credentials

这样我就可以执行git pull而无需输入密码。

现在我尝试创建一个git-clone.service如下的服务文件,该文件执行一个名为pull_basic_lib.sh包含命令的bash 脚本cd ~/project && git pull

[Install]
WantedBy=default.target

[Unit]
Description=git clone basic libraries

[Service]
Type=oneshot
ExecStart=/home/me/bin/pull_basic_lib.sh

但是,当我执行时systemctl start git-clone.service,出现错误:

could not read Password for 'http://[email protected]': No such device or address

嗯,似乎无法~/.git-credentials将文件导入到服务中。

有什么方法可以解决这个问题吗?

答案1

考虑使用密钥对。这不仅可以自动对您进行身份验证,而且比本地存储密码更安全。请参阅 github 指南这里关于如何链接您的密钥。

那么你需要设置你的 ssh 配置本地,以便在连接到 时使用该密钥github.com。您可能还需要确保使用与存储库 URL 等效的 ssh。您可以通过运行来检查git config -l

相关内容