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

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

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

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

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


当前回答

我解决了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用户的公钥和私钥。

其他回答

步骤1: 在~/中添加了一个配置文件。Ssh /config文件,看起来像

   User git
   Hostname gitlab.com
   IdentityFile ~/.ssh/id_rsa_gitlab
   TCPKeepAlive yes
   IdentitiesOnly yes

步骤2:克隆没有sudo的git repo。 文档:https://gitlab.com/help/ssh/README working-with-non-default-ssh-key-pair-paths

**有时在~/中有配置。ssh/config,但是,IdentityFile路径错误。您可以像这样检查文件名ls ~/.ssh/。gitlab的文件通常是id_ed25519。因此正确的配置是IdentityFile ~/.ssh/id_ed25519

有一个非常简单的解决方案: 与其使用SSH,不如使用https。 这样做: 在项目文件夹中有一个。git文件夹 在那里-你有一个配置文件-在文本编辑器中打开它 改变这条线

url = git@gitlab。com: yourname / yourproject git。

to

Url = https://gitlab.com/yourname/yourproject.git

请使用git配置凭证。如果您的站点使用TLS/SSL, helper存储。 希望这有用

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

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

早些时候,这对我来说是非常困难的,但当我尝试时,在Mac和Linux中添加ssh密钥变得如此容易。有以下几个步骤和命令可以做到这一点:

打开系统的一个终端,通过下面的命令移动到项目目录中:

cd 'project directory name'

在该终端中运行ssh-keygen命令并输入它,直到密钥的randomart图像出现在那里。 然后在终端上再输入一个命令:

cat ~/.ssh/id_rsa.pub

它将生成ssh密钥。Key将以ssh-rsa开始,以.local结束。

复制密钥并转到您的Gitlab配置文件部分,然后ssh密钥部分并粘贴到那里。点击添加按钮,这将工作。