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

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

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

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

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


当前回答

如果你用的是Linux或macox,在终端试试这个:

ssh-add -l

如果它什么都不返回,试试这个:

ssh-add

它必须在~/.ssh/id_rsa中创建identity

重试后:

ssh-add -l

它必须返回你的身份,所以重试克隆后,它必须工作

注意:不要忘记在你的个人资料gitlab中添加你的ssh密钥

谢谢

其他回答

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

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

转到终端,重新生成ssh密钥。ssh - keygen类型。它会问你想保存在哪里,输入路径。

然后将公钥复制到gitlabs平台。它通常从ssh-rsa开始。

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

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

AllowUsers user1 user2 user3 git

我添加了~/.ssh/id_rsa。pub到我的GitLab设置中的已知SSH密钥列表https://gitlab.com/profile/keys。这为我解决了问题。: -)

步骤要做,得到同样的错误,但我修复了它。 Gitlab需要ssh-rsa,所以下面是运行ssh for rsa的代码

ssh-keygen -o -t rsa -b 4096 -C "name@gmail.com"

name@gmail.com是您的gitlab帐户电子邮件

It will prompt you to enter so just hit Enter after the below code is prompt, Enter file in which to save the key (/home/yourDesktopName/.ssh/id_rsa): It will prompt again you to enter so just hit Enter after the below code is prompt, Enter passphrase (empty for no passphrase): It will prompt again for the last you to enter so just hit Enter after the below code is prompt, Enter same passphrase again: You will show your ssh-rsa generate. Login to your Gitlab account and Go to the right navbar you will get setting and in the left sidebar you will get ssh key. Enter in it. Look above the prompt asking you to enter, you will get the path of ssh-rsa. Go to your SSH folder and get the id_rsa.pub Open it and get the key and Copy Paste to the Gitlab and you are nearly to done. Check by: ssh -T git@gitlab.com You will get: Welcome to GitLab, @joy4! Done.