gpt4 book ai didi

linux - 尝试从 bash 脚本将 ssh key 推送到 github 时出错

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:06:10 24 4
gpt4 key购买 nike

我正在编写一个创建 ssh key 并使用 bash 将它们放入 github 的脚本。我在运行这个函数时遇到了这个错误。我想要一种方法来生成 ssh key 并将它们从我的脚本中的终端放入 github。

sudo ssh-keygen -t rsa
KEY=$(sudo cat ~/.ssh/id_rsa.pub)
echo "Here is your KEY var: ${KEY}"
read -p "GitHub Username: " USERNAME
read -p "Please enter a title for you ssh key: " TITLE
curl --user "\"${USERNAME}"\" -X POST --data '{ "\"title"\": "\"$TITLE"\", "\"key"\": "\"$KEY"\" }' https://api.github.com/user/keys

错误:{ "message": "凭据错误", “documentation_url”:“https://developer.github.com/v3

最佳答案

您在命令中放置了太多引号。正确的代码(第一次近似)是

curl --user "${USERNAME}" -X POST \
--data "{ \"title\": \"$TITLE\", \"key\": \"$KEY\" }" \
https://api.github.com/user/keys

但是,如果 TITLEKEY 包含需要转义以包含在 JSON 中的字符,这很容易失败。执行此操作的正确方法是使用 jq 等工具生成 JSON,该工具负责任何必要的转义。

curl --user "${USERNAME}" -X POST \
--data "$(jq -n --arg t "$TITLE" --arg k "$KEY" \
'{title: $t, key: $k}')" \
https://api.github.com/user/keys

jq -n --arg t "$TITLE" --arg k "$KEY" '{title: $t, key: $k}' |
curl --user "$USERNAME" -X POST --data @- https://api.github.com/user/keys

关于linux - 尝试从 bash 脚本将 ssh key 推送到 github 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46289598/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com