GitLab SSH权限被拒绝(公钥)

4

我按照Gitlab的指示设置了SSH密钥。

一切都完成后,我使用以下命令来测试我的设置:

ssh -T git@gitlab.com

但后来我遇到了一个错误,与

有关。
git@gitlab.com: Permission denied (public key).

我也尝试了ssh -Tvvv git@gitlab.com来查找问题,如下所示。 但是我无法弄清楚如何修复它,有人有想法或者可以分享建议吗? 非常感谢!

OpenSSH_8.1p1, LibreSSL 2.7.3
.......
debug3: send packet: type 50
debug3: receive packet: type 51
debug1: Authentications that can continue: publickey
debug3: start over, passed a different list publickey
debug3: preferred publickey,keyboard-interactive,password
debug3: authmethod_lookup publickey
debug3: remaining preferred: keyboard-interactive,password
debug3: authmethod_is_enabled publickey
debug1: Next authentication method: publickey
debug1: Trying private key: /Users/brandon/.ssh/id_rsa
debug3: no such identity: /Users/brandon/.ssh/id_rsa: No such file or directory
debug1: Trying private key: /Users/brandon/.ssh/id_dsa
debug3: no such identity: /Users/brandon/.ssh/id_dsa: No such file or directory
debug1: Trying private key: /Users/brandon/.ssh/id_ecdsa
debug3: no such identity: /Users/brandon/.ssh/id_ecdsa: No such file or directory
debug1: Offering public key: /Users/brandon/.ssh/id_ed25519 ED25519 SHA256:uOKjKpgEmnKqrFAS05Ccy8+B3Uw0kzSpurUpOgH0l3k
debug3: send packet: type 50
debug2: we sent a publickey packet, wait for reply
debug3: receive packet: type 51
debug1: Authentications that can continue: publickey
debug1: Trying private key: /Users/brandon/.ssh/id_xmss
debug3: no such identity: /Users/brandon/.ssh/id_xmss: No such file or directory
debug2: we did not send a packet, disable method
debug1: No more authentication methods to try.
git@gitlab.com: Permission denied (publickey).

感谢您耐心阅读我的帖子。


你能否运行命令 ls -lh ~/.ssh/ 来检查你的 SSH 密钥对是否符合 https://docs.gitlab.com/ee/ssh/#review-existing-ssh-keys 的要求? - Aleksey Tsalolikhin
从ssh日志中,它使用/Users/brandon/.ssh/id_ed25519对Gitlab进行认证。这是您添加到Gitlab帐户的相同SSH公钥吗? - Gino Mempin
1
ssh应该使用哪个文件来与Github进行身份验证?换句话说,您在Github上设置了哪个密钥?那个密钥存储在哪个文件中? - Kenster
@AlekseyTsalolikhin 它显示 总共 24 -rw------- 1 brandon staff 419B 5月 7日 02:16 id_ed25519 -rw-r--r--@ 1 brandon staff 108B 5月 7日 02:16 id_ed25519.pub -rw-r--r--@ 1 brandon staff 186B 5月 7日 02:17 known_hosts - Currycatlover
@Kenster 我使用id_ed25519.pub密钥进行设置,并将其存储在/Users/brandon/.ssh目录下。 - Currycatlover
显示剩余3条评论
3个回答

3

谢谢,问题已解决!由于服务器来自我们大学,所以将 ssh -T git@gitlab.com 更改为 ssh -T git@theuniversitylink.com 后它可以正常工作。

非常感谢所有的分享和帮助。


ssh -Tv 命令会显示 id_rsa 或者 id_ed25519 是否被接受了吗? - VonC
@VonC 是的,它做到了! - Currycatlover

1

使用id_ed25519.pub密钥进行设置,并将其存储在/Users/brandon/.ssh中

首先尝试使用更经典的rsa密钥进行测试!

ssh-keygen -t rsa -P "" -m PEM 

将 /Users/brandon/.ssh/id_rsa.pub 复制到您的 GitLab SSH 账户设置中,并检查 ssh -T git@gitlab.com 是否可用。

嗨,谢谢!我试过了,但是使用公钥仍然得到相同的结果(被拒绝)。 - Currycatlover
@BrandonTW 你是否已经将 id_rsa.pub 的内容正确地注册到你的账户中了?是作为一行连续的文本吗? - VonC

1
我在MacOS上这样修复了它:

ssh-add ~/.ssh/id_ed25519.pub

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接