【发布时间】:2020-10-26 14:25:33
【问题描述】:
我编写了一个 bash 脚本,它遍历包含 SSH URL 的 JSON 数组并将存储库克隆到一个临时文件夹。
这就是 bash 脚本的样子:
eval "$(ssh-agent -s)"
ssh-add /Users/schotsl/.ssh/id_ed25519
jq -c '.[]' ./../repos.json | while read i; do
git clone $i
done
但是当我运行 bash 脚本时,这是结果输出:
Cloning into 'krijn-text-4.git"'...
"git@codebasehq.com: Permission denied (publickey).
fatal: Could not read from remote repository.
编辑:
我应该在之前澄清这一点,以确保我们的密钥是正确的,我重新生成了我的密钥。现在,当我在没有将密钥添加到我的 SSH 代理的情况下运行克隆命令时,我得到了与预期相同的错误。使用此命令添加密钥后:
ssh-add /Users/schotsl/.ssh/id_ed25519
我可以很好地下载 repo,但不知何故脚本不能?
【问题讨论】:
-
这似乎是一个
ssh问题,与您获取要克隆的 URL 的方式无关。您确定您向代理添加了正确的密钥并将相应的公钥添加到存储库服务器吗? -
对不起,我已经扩展了您的答案以澄清,我还从与脚本相同的 JSON 文件复制了远程 URL @chepner
-
JSON 究竟是什么样子的?
-
啊:刚刚注意到 Git 输出中的尾随
"。您可能需要jq -cr之类的东西来输出原始文本,而不是 JSON 字符串,但它仍然有助于显示您正在使用的 JSON。 -
在循环 jst 中回显
i变量以确认存储库正确