[英]Error When trying to push ssh keys into github from bash script
我正在研究一個腳本,該腳本創建ssh密鑰,並使用bash將其放入github。 我在運行此函數時遇到此錯誤。我想要一種生成ssh密鑰並將其從腳本中的終端放入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
錯誤:{“消息”:“憑證不正確”,“ documentation_url”:“ https://developer.github.com/v3 ”}
您在命令中添加了過多的引號。 正確的代碼(大致近似)為
curl --user "${USERNAME}" -X POST \
--data "{ \"title\": \"$TITLE\", \"key\": \"$KEY\" }" \
https://api.github.com/user/keys
但是,如果TITLE
或KEY
包含需要轉義以包含在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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.