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

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

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

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

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


当前回答

对于任何使用Windows 10且没有其他工作的人:

在我的情况下,我不得不用https而不是ssh克隆回购,并弹出一个窗口,要求我的凭证。 在那之后一切都很好。

其他回答

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

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

尝试使用git克隆XXX,如果你看到LibreSSL SSL_connect: SSL_ERROR_SYSCALL连接到XXX,这可能是刚刚更新了你的操作系统,安装了一些开发工具,例如Xcode及其Mac上的工具,VPN,反病毒(特别是卡巴斯基反病毒)或其他之间的东西。

在我的情况下,简单地重新启动我的操作系统(macOS Catalina)修复了这个问题。

在我的情况下,我使用Ubuntu有两个用户,一个是管理员用户,另一个是我,我创建了“id_rsa”和“id_rsa”。Pub”文件,而登录为我(普通用户),这些文件创建在您的”。home文件夹中的Ssh文件夹, 它可能找不到,因为它是隐藏的,所以让它可见,以检查文件是否在其中。

所以文件是在“home/”中创建的。但当我把代码推到gitlab时,我在终端上以管理员身份登录, 使用命令:su - adminName(提示输入密码)

因此“adminhome/”中没有SSH私钥。文件夹。要解决这个问题,你可以:

创建“id_rsa”和“id_rsa”。Pub”在管理配置文件(或)中 使用您的配置文件而不是管理员配置文件将代码推入gitlab。

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

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

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

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

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