【发布时间】:2015-11-07 12:26:55
【问题描述】:
我正在编写一个 bash 脚本,它会将 SSH-key 添加到内部 Gitlab 服务器。下面是代码:
userToken=$(curl http://gitserver/api/v3/session --data 'login=*****&password=****' | jq '.private_token')
userToken=$(echo "$userToken" | tr -d '"')
# Below key is for testing, will use output of cat ~/.ssh/id_rsa.pub later on
sshKey="ssh-rsa AA*********L ****@***com"
curl --data "private_token=$userToken&title=keyName&key=$sshKey" "http://gitserver/api/v3/user/keys"
但我得到了这样的回应:
{
"message": {
"fingerprint": [
"cannot be generated"
]
}
}
但是当我通过网络浏览器手动插入相同的密钥时,一切正常...
那我做错了什么?我错过了一个选项吗?
【问题讨论】:
-
小问题:curl/GitLab 可以处理帖子字符串中的空格,还是您需要对您的 POST 数据进行 url 编码?您可以尝试使用
curl --data-urlencode而不是curl --data。 -
@ErikE.Lorenz 看起来这可能是问题所在并修复!唯一的问题...我从项目中被带走了。但是我把这个信息传递给了负责人(虽然他没有时间尝试)。但是由于这看起来可以解决问题,您可以创建一个官方答案,以便我接受它。
标签: git bash curl gitlab ssh-keys