我的问题是我不能从GitLab中push或fetch。但是,我可以克隆(通过HTTP或SSH)。当我试图推的时候,我得到这个错误:
权限被拒绝(publickey)致命:无法从远程存储库读取
从我看过的所有线索来看,以下是我所做的:
在我的电脑上设置一个SSH密钥,并将公钥添加到GitLab
完成了用户名和电子邮件的config -global
通过SSH和HTTP克隆,以检查它是否能解决问题
执行ssh -T git@gitlab.com命令
如果您对如何解决我的问题有任何见解,我将不胜感激。
步骤要做,得到同样的错误,但我修复了它。
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.
另一个可能导致这种行为的问题是当你有2个可能的%HOME%-locations的设置时。
我使用的是个人电脑,其中一些文档存储在本地,另一些存储在网络驱动器上。一些应用程序认为C:\Users\<MyUserName>\是my %home%,另一些应用程序认为U:\是home。
原来ssh-keygen把我的私钥放在C:\users\<MyUserName>\下,ssh -T和ssh -v也在那里查找。
所以一切似乎都很好,除了git克隆,git推和其他人在U:\寻找一个键。
它失败了,所以我得到了前面提到的错误。
我花了一个小时才找到答案,但最终解决方案很简单:我复制了C:\Users\<MyUserName>\中的所有内容。ssh到U:\.ssh
在我的情况下,我使用Ubuntu有两个用户,一个是管理员用户,另一个是我,我创建了“id_rsa”和“id_rsa”。Pub”文件,而登录为我(普通用户),这些文件创建在您的”。home文件夹中的Ssh文件夹,
它可能找不到,因为它是隐藏的,所以让它可见,以检查文件是否在其中。
所以文件是在“home/”中创建的。但当我把代码推到gitlab时,我在终端上以管理员身份登录,
使用命令:su - adminName(提示输入密码)
因此“adminhome/”中没有SSH私钥。文件夹。要解决这个问题,你可以:
创建“id_rsa”和“id_rsa”。Pub”在管理配置文件(或)中
使用您的配置文件而不是管理员配置文件将代码推入gitlab。