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
。