Mat*_*ght 2 ssh openssh gitlab
我在通过 API 向我的 gitlab 服务器添加 SSH 密钥时遇到问题(它通过网页运行良好)。
我遇到了这个问题(已在此处修复),它与“错误”的 openssh 实现有关。他们在里程碑 7.10 中修复了这个问题。唯一的事情......我的服务器安装了openssh 6.6:
OpenSSH_6.6.1p1 Ubuntu-2ubuntu2.3, OpenSSL 1.0.1f 6 Jan 2014
Run Code Online (Sandbox Code Playgroud)
现在,我不知道该修复是否向后兼容,但也许值得一提。
此外,日志没有显示任何警告或错误或任何内容。/tmp/gitlab_key* 文件在服务器上生成:

我面临的问题是 gitlab无法通过 API创建指纹。这是我从 API 得到的回应:
{
"message": {
"fingerprint": ["cannot be generated"]
}
}
Run Code Online (Sandbox Code Playgroud)
所以现在我不知道可能是什么问题。我已经为此苦苦挣扎了将近一个星期,所以我真的希望他的问题能够得到解决。
- 只是为了记录,这是我用来通过 API 添加 ssh 密钥的脚本
OpenSSH_6.6.1p1 Ubuntu-2ubuntu2.3, OpenSSL 1.0.1f 6 Jan 2014
Run Code Online (Sandbox Code Playgroud)
小智 5
id_rsa.pub是 base64 编码的文件,它包含+字符
http post with application/x-www-form-urlencoded,需要对其内容进行编码+以防止被转换为 (空格)
尝试
curl --data-urlencode "key=$key_pub" --data-urlencode "title=$hostname" \
http://gitlabserver/api/v3/user/keys?private_token=$Token
Run Code Online (Sandbox Code Playgroud)
见:这个
改进 @Mathlight 的答案,以下代码片段将公共 ssh 密钥上传到gitlab.com
curl -X POST -F "private_token=${GITLAB_TOKEN}" -F "title=$(hostname)" -F "key=$(cat ~/.ssh/id_rsa.pub)" "https://gitlab.com/api/v3/user/keys"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3950 次 |
| 最近记录: |