指纹已经在gitlab中提取

指纹已经在gitlab中提取,gitlab,ssh-keys,Gitlab,Ssh Keys,我格式化了我的Windows7笔记本电脑,为了让git安装程序再次工作,我安装了git和源代码树应用程序 我从gitlab中删除了SSH密钥,并使用SSH-keygen重新生成了密钥。但当我尝试在gitlab添加SSH密钥时,它会引发以下异常: Key is invalid Fingerprint has already been taken Fingerprint cannot be generated 因此,我无法从源代码树应用程序克隆git存储库,因为gitlab无法验证SSH密钥。我跟

我格式化了我的Windows7笔记本电脑,为了让git安装程序再次工作,我安装了git和源代码树应用程序

我从gitlab中删除了SSH密钥,并使用
SSH-keygen
重新生成了密钥。但当我尝试在gitlab添加SSH密钥时,它会引发以下异常:

Key is invalid
Fingerprint has already been taken
Fingerprint cannot be generated

因此,我无法从源代码树应用程序克隆git存储库,因为gitlab无法验证SSH密钥。我跟踪了gitlab的google组的查询,但他们似乎都没有解决我的问题。是否有任何解决方法或步骤来获得gitlab接受的SSH密钥?

确保切掉base64编码字符串末尾的所有内容。 同时删除所有换行符,使字符串不包含换行符


这对我很有帮助。

我尝试了所有建议,但没有任何效果。最终对我有效的方法是使用命令而不是从文本编辑器复制公钥(
nano
在我的例子中):

pbcopy<~/.ssh/id\u rsa.pub

如有必要,用我的特定密钥名替换
id\u rsa
。上述命令适用于OSX。其他系统需要不同的命令,它们列在下一页:。

文本编辑器可能是问题所在。尝试用记事本而不是记事本++打开密钥文件

还要在密钥的开头添加“ssh rsa”。

创建一个新密钥 上述解决方案都不适用于我,因此我备份了旧密钥并创建了一个新密钥


#osx10.12.6

在我的情况下,我的公钥必须以某种方式连接到特定的存储库

我返回并删除了两个旧的存储库,之后它允许我将公钥添加到我的GitLab帐户中,而没有任何问题。

添加新的ssh密钥
pervius ssh密钥可能被其他用户使用。当其他人使用ssh密钥时,您必须获得此错误,不要担心创建新的ssh密钥并使用主题。

Gitlab可以在您过去项目的另一个帐户中使用您的ssh密钥,以某种方式-因此,解决此问题的最简单方法是创建新的ssh对,将其添加到ssh代理,并将id_rsa2.pub添加到您的Gitlab帐户

$ ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
当它问:

Generating public/private rsa key pair. 
Enter file in which to save the key (/home/<NAME>/.ssh/id_rsa):  

我得到了相同的错误,因为我已经将此密钥添加到gitlab中的另一个帐户。

在我的例子中;我尝试添加的公钥已用于“工作”Gitlab帐户,我在尝试将同一密钥用于“个人”Gitlab帐户时收到上述错误

$ ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
解决方案-在同一台计算机上添加另一个公钥,并将其与“个人”gitlab帐户一起使用(都在同一台计算机上)

导航到配置文件中的.ssh文件夹(甚至可以在windows上运行)并运行命令

ssh-keygen -t rsa
当要求提供文件名时,请提供另一个文件名id_rsa_2(或任何其他文件名)。 输入无密码短语(或其他)。 您将最终生成id_rsa_2和id_rsa_2.pub

使用命令

cat id_rsa_2.pub
复制并保存“个人”Gitlab帐户中的密钥

$ ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
在名为“config”的.ssh文件夹中创建一个没有扩展名的文件

将此配置块放入配置文件中

Host           gitlab.com
HostName       gitlab.com
IdentityFile   C:\Users\<user name>\.ssh\id_rsa
User           <user name>


Host           gitlab_2
HostName       gitlab.com
IdentityFile   C:\Users\<user name>\.ssh\id_rsa_2
User           <user name>
Host gitlab.com
主机名gitlab.com
标识文件C:\Users\\.ssh\id\u rsa
使用者
主机gitlab_2
主机名gitlab.com
标识文件C:\Users\\.ssh\id\u rsa\u 2
使用者
现在,每当您想使用“个人”gitlab帐户时,只需更改git URL中的别名,即可对远程服务器执行操作

比如说 而不是使用

git克隆git@gitlab.com

简单使用

git克隆git@gitlab_2

这样做将使用gitlab.com的第二个配置(来自“config”文件),并将使用新的id\u rsa\u 2密钥对进行身份验证

在此链接上查找有关上述命令的更多信息

我的SSH密钥存储在一个旧的Gitlab帐户中,我将其删除并解决了问题。

在试图添加部署密钥的同一个Gitlab设置页面中,向下滚动一点,您会发现一个名为“私人可访问的部署密钥”的选项卡。单击它,您将发现您试图添加的密钥列在那里。只需单击它旁边的“启用”,它就会工作

从数据库中删除密钥并重新添加它对我来说很有效。谢谢你的帮助。哦,真的很有帮助。我从自动添加新行字符的命令行复制pub键。这就是为什么在将pub密钥值粘贴到Gitlab中时,会显示这样的错误。在尝试添加第一个SSH密钥时,它对我不起作用。我检查了没有换行符,并且删除了实际密钥后的所有内容。只是补充一下,我没有注意到一些东西。我正在从vim复制我的密钥,它没有换行符,但我有
:set number
。如果我使用
:set nonumber
删除行号,它会工作……gedit或vim中没有明显的区别,但对我有效。我在从vi复制时犯了类似的错误,因为添加了无效的新行,最好从文本编辑器复制。更正:当它询问:
生成公共/私有rsa密钥对时。输入保存密钥的文件(/home//.ssh/id\u rsa):
请输入
/home//.ssh/id\u rsa2
不适用于我(使用mac机器),错误-//致命:无法从远程存储库读取。请确保您具有正确的访问权限,并且存储库存在//您保存了我的一天。谢谢。如何确定这是另一个帐户?你知道吗?不知道。。我登录了我的其他帐户并逐一检查。您应该尝试创建一个新密钥并对其进行测试。仅供参考,我认为当该密钥用作回购的部署密钥时,它也会失败。我想这更难找到。谢谢!成功了。虽然我们不得不在配置文件中做一个小的更改,以指向内部而不是通用