我的问题是我不能从GitLab中push或fetch。但是,我可以克隆(通过HTTP或SSH)。当我试图推的时候,我得到这个错误:
权限被拒绝(publickey)致命:无法从远程存储库读取
从我看过的所有线索来看,以下是我所做的:
在我的电脑上设置一个SSH密钥,并将公钥添加到GitLab
完成了用户名和电子邮件的config -global
通过SSH和HTTP克隆,以检查它是否能解决问题
执行ssh -T git@gitlab.com命令
如果您对如何解决我的问题有任何见解,我将不胜感激。
这可能听起来很愚蠢,但请确保您的系统和git客户端使用相同的ssh客户端。这在Windows上可能是最相关的。
当您安装现代版本的Windows时,默认情况下会安装OpenSSH客户端,而当您为Windows安装Git时,它在内部使用自己捆绑的ssh客户端。因此,您需要将Git for Windows指向您的OpenSSH安装。
对于任何其他第三方ssh客户端也是一样的,我们在这里只选择OpenSSH作为我们的客户端。
Win + R => cmd
如果安装了OpenSSH路径
Win + S => '编辑环境变量
系统变量=>查找GIT_SSH密钥
编辑或创建(如果不存在),将其值设置为OpenSSH path
创建一个新的终端实例,现在应该在其中应用更改,这样就可以继续了。
注意,如果你使用的是VS Code或其他具有集成终端的编辑器,仅仅创建一个新的编辑器是不够的,你需要重新启动你的编辑器。
早些时候,这对我来说是非常困难的,但当我尝试时,在Mac和Linux中添加ssh密钥变得如此容易。有以下几个步骤和命令可以做到这一点:
打开系统的一个终端,通过下面的命令移动到项目目录中:
cd 'project directory name'
在该终端中运行ssh-keygen命令并输入它,直到密钥的randomart图像出现在那里。
然后在终端上再输入一个命令:
cat ~/.ssh/id_rsa.pub
它将生成ssh密钥。Key将以ssh-rsa开始,以.local结束。
复制密钥并转到您的Gitlab配置文件部分,然后ssh密钥部分并粘贴到那里。点击添加按钮,这将工作。
在我的情况下,我使用Ubuntu有两个用户,一个是管理员用户,另一个是我,我创建了“id_rsa”和“id_rsa”。Pub”文件,而登录为我(普通用户),这些文件创建在您的”。home文件夹中的Ssh文件夹,
它可能找不到,因为它是隐藏的,所以让它可见,以检查文件是否在其中。
所以文件是在“home/”中创建的。但当我把代码推到gitlab时,我在终端上以管理员身份登录,
使用命令:su - adminName(提示输入密码)
因此“adminhome/”中没有SSH私钥。文件夹。要解决这个问题,你可以:
创建“id_rsa”和“id_rsa”。Pub”在管理配置文件(或)中
使用您的配置文件而不是管理员配置文件将代码推入gitlab。