我的问题是我不能从GitLab中push或fetch。但是,我可以克隆(通过HTTP或SSH)。当我试图推的时候,我得到这个错误:

权限被拒绝(publickey)致命:无法从远程存储库读取

从我看过的所有线索来看,以下是我所做的:

在我的电脑上设置一个SSH密钥,并将公钥添加到GitLab 完成了用户名和电子邮件的config -global 通过SSH和HTTP克隆,以检查它是否能解决问题 执行ssh -T git@gitlab.com命令

如果您对如何解决我的问题有任何见解,我将不胜感激。


当前回答

在我的例子中,这不是一个gitlab问题,而是一个sshd配置问题。除了用户列表之外,ssh服务器不允许连接。用户git,即远程连接到gitlab的用户,不在该列表中。所以,先检查这个。

您可以在/etc/ssh/sshd_config中查看您的ssh服务器配置。如果你有一行AllowUsers选项,添加git到它:

AllowUsers user1 user2 user3 git

其他回答

我的问题是,我在/etc/ssh/sshd_config下的SSH配置文件中将UsePAM从yes切换为no。有了UsePAM,一切都很完美。

我有gitlab运行docker,这是我所做的解决我的问题。

发现在docker /var/log/gitlab/sshd/current内部出现了多条消息:

身份验证被拒绝:文件/var/opt/gitlab/.ssh/authorized_keys的所有权或模式错误

之后,我将该文件的所有权从99:users更改为git:users:

Chown git:users authorized_keys

我也有同样的问题,在尝试了@Khan的答案后,我提出了这个问题。然而,我只能通过将.git/config文件中的原始url更改为https地址:https://gitlab.com/mygitlabusername/mygitproject.git来使其工作

由于通过ssh访问被拒绝,我发现使用https应该不是问题。但是,每次推送到at存储库时,它都会要求您提供用户名和密码

我也有同样的问题,我通过添加一个新的ssh密钥来解决它:

ssh-keygen -t ed25519 -C "email@example.com" 将您的公共SSH密钥复制到剪贴板(xclip -sel clip < ~/. SSH /id_ed25519. exe)。pub在我的情况下在Linux上) 在gitlab上,转到settings=>ssh keys,然后跳过新密钥

我找了很久才找到这个。这对我来说是完美的。

Go to "Git Bash" just like cmd. Right click and "Run as Administrator". Type ssh-keygen Press enter. It will ask you to save the key to the specific directory. Press enter. It will prompt you to type password or enter without password. The public key will be created to the specific directory. Now go to the directory and open .ssh folder. You'll see a file id_rsa.pub. Open it on notepad. Copy all text from it. Go to https://gitlab.com/-/profile/keys or Paste here in the "key" textfield. Now click on the "Title" below. It will automatically get filled. Then click "Add key".

现在试一试,肯定会管用的。