【发布时间】:2021-07-18 16:23:48
【问题描述】:
每当我对树莓派 3B 中的本地存储库进行更改时,我使用以下脚本 (autoupdate.sh) 使用 SSH 自动更新我的 git 存储库。
#!/usr/bin/env bash
DATADIR="/home/pi/data"
cd $DATADIR
if [[ -n $(git status -s) ]]; then
echo "Changed found. Pushing changes..."
git add -A && git commit -m "$1: Update files" && git push origin main
else
echo "No changes found. Skip pushing."
fi
然后我调用一个脚本measurement.sh,它在连接互联网时调用上述脚本(我使用了 4G 加密狗 USB)。类似的东西
...
cd ~/data; bash autoupdate.sh $DATE
...
但是,当我运行sudo bash measurement.sh 时,它遇到了错误(它已提交但未推送)。没有 sudo 它可以正常工作。
Permission denied(public key)
...
我通过重新生成 ssh 密钥并验证了公钥从 GitHub 文档 https://docs.github.com/en/github/authenticating-to-github/troubleshooting-ssh/error-permission-denied-publickey 进行了检查,但它根本没有解决。当我在单独的终端中推送提交时,它可以正常工作,所以我认为问题与 SSH 密钥无关。我怀疑要使用 sudo 成功运行脚本,首先还必须使用 sudo 生成 SSH 密钥生成器。
这可能是什么原因?
【问题讨论】:
-
sudo,该死的!