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

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

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

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

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


当前回答

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

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

其他回答

我遇到这个问题是因为Windows-10上的ssh-agent冲突。 如果你也在使用Windows-10,那么请仔细阅读我的详细解决方案

如果你不在windows-10,那么请检查是否:

您的ssh代理正在运行 将正确的私钥添加到ssh-agent中 正确的公钥被添加到你的github帐户(你可以克隆,所以这一步应该是好的)

这两种访问git存储库的方式之间似乎存在差异,即使用SSH或HTTPS。对我来说,我遇到这个错误是因为我试图使用SSH推送我的本地存储库。

这个问题可以简单地通过单击项目登录页面上的克隆按钮来解决,复制HTTPS链接并将其替换为格式为“git@gitlab...”的SSH链接。

我在Windows 10上使用Pageant作为SSH代理,除了向Windows添加一个环境变量(翻译自德语Windows 10,所以命名可能不同):

搜索“变量” 打开系统环境变量 单击底部的环境变量按钮 添加一个名为“GIT_SSH”的新密钥和值“C:\Program Files\PuTTY\plink.exe”,到顶部的“用户变量xxx”部分 做完了。

感谢Benjamin Bortels,来源:https://bortels.io/blog/git-in-vs-code-unter-windows-richtig-einstellen

我解决了git@gitlab.com:权限拒绝(公钥)问题使用以下说明

运行cat ~/.ssh/id_rsa.pub id_rsa副本。pub(公钥)到您的getlab '设置-> SSH密钥 运行cat ~/.ssh/id_rsa 将id_rsa(私钥)拷贝到“Code_repo->git_auth->id_rsa”

注意:如果您在DockerFile或其他任何地方使用root用户,请注意机器用户,然后在运行上述命令之前使用sudo su来获取root用户的公钥和私钥。

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

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