Gitlab密钥格式问题

时间:2015-10-23 12:16:14

标签: git ssh gitlab atlassian-sourcetree

我正面临一个奇怪的情况,我使用gitlab帐户来处理我的代码。我正在使用ssh协议来访问repo。我能够拉取代码但我在尝试推送代码时收到以下错误。这对我来说可能是愚蠢的。但是我将密钥存储在我的gitlab配置文件中并且能够使用它来提取代码

错误:

$ git push origin master
key_load_public: invalid format
Enter passphrase for key '/c/Users/username/.ssh/id_rsa':
Access denied.
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

5 个答案:

答案 0 :(得分:21)

最后,我能够解决此问题,并将其发布给其他用户。如果 putty 生成的密钥无法帮助您访问gitlab repo,请尝试使用命令ssh-keygen gitbash 终端生成密钥并保存文件您的用户帐户的.ssh文件夹。

Linux风格的密钥生成使我的生活变得轻松,因为我试图使用putty keygen在windows环境中生成密钥。

希望这有助于某人。

答案 1 :(得分:16)

PuTTYGen可以生成正确的OpenSSH密钥。

  1. 生成密钥文件,保存私钥(带或不带密码)
  2. 将您的用户名/电子邮件地址添加为评论
  3. 复制生成的密钥的内容并将其粘贴到您的id_rsa.pub
  4. 使用菜单导出OpenSSH私钥并将其另存为id_rsa
  5. Export OpenSSH Key

答案 2 :(得分:2)

我通过从我的私钥(id_es.pub)重新生成我的公钥(id_es)修复了我的错误:

ssh-keygen -f ~/.ssh/id_es -y > ~/.ssh/id_es.pub

答案 3 :(得分:0)

如果您上传'vanilla'putty键,可能会在此处描述解决方案:https://gitlab.com/gitlab-org/gitlab-ce/issues/786

答案 4 :(得分:0)

---- BEGIN SSH2 PUBLIC KEY ----
Comment: "my.email@example.com"
AAAAB3NzaC1ycxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxx=
---- END SSH2 PUBLIC KEY ----

此刻,您必须手动提取密钥(除去其他行)并在其前面添加“ ssh-rsa”。就像

ssh-rsa AAAAB3NzaC1ycxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxx=

如果Gitlab自动执行此操作会更方便。

https://gitlab.com/gitlab-org/gitlab-foss/-/issues/786