指纹已经采取gitlab

时间:2014-05-08 09:31:05

标签: gitlab ssh-keys

我格式化了我的Windows 7笔记本电脑,并试图让git设置再次运行,我安装了 git和source tree应用程序。

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

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

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

12 个答案:

答案 0 :(得分:11)

就我而言;我要添加的公钥已与“工作” Gitlab帐户一起使用,并且在尝试与“个人” Gitlab帐户使用相同的密钥时收到了上述错误。

解决方案-在同一台计算机上添加另一个公钥,并将其与“个人” gitlab帐户(均在同一台计算机上)一起使用。

导航到配置文件中的.ssh文件夹(即使在Windows上也可以)并运行命令

ssh-keygen -t rsa

当要求输入文件名时,请提供另一个文件名id_rsa_2(或其他任何文件名)。 输入无密码(或其他密码)。 您最终将创建id_rsa_2和id_rsa_2.pub

使用命令

cat id_rsa_2.pub

在“个人” Gitlab帐户中复制并保存密钥。

在名为'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>

现在,只要您想使用“个人” gitlab帐户,只需更改git URL中的别名即可对远程服务器执行操作。

例如 而不是使用

git clone git @ gitlab.com :..............

只需使用

git clone git @ gitlab_2 :......

这样做将对gitlab.com使用第二种配置(来自“ config”文件),并将使用新的id_rsa_2密钥对进行身份验证。

在此链接上找到有关上述命令的更多信息
https://clubmate.fi/how-to-setup-and-manage-multiple-ssh-keys/

答案 1 :(得分:10)

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

这对我有用。

答案 2 :(得分:3)

我尝试了所有已经提出的建议但没有任何效果。最终为我工作的是使用命令而不是文本编辑器(在我的情况下为nano)复制公钥:

pbcopy < ~/.ssh/id_rsa.pub

如果需要,使用我的特定密钥名称替换id_rsa。以上命令适用于OSX。其他系统需要不同的命令,它们列在下一页:http://doc.gitlab.com/ce/ssh/README.html

答案 3 :(得分:1)

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

$ ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
$ ssh-add ~/.ssh/id_rsa2

答案 4 :(得分:1)

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

答案 5 :(得分:0)

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

同时添加&#34; ssh-rsa&#34;在钥匙的开头。

答案 6 :(得分:0)

制作新钥匙

以上解决方案都不适合我,所以我备份了旧密钥并创建了一个新密钥。

https://help.github.com/articles/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent/

#osx10.12.6

答案 7 :(得分:0)

就我而言,我的公钥必须以某种方式附加到特定的存储库。

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

答案 8 :(得分:0)

添加新的ssh密钥 pervius ssh密钥可能被另一个用户使用。当其他人使用ssh密钥时,您一定会收到此错误提示,担心创建新的ssh密钥并使用主题。

答案 9 :(得分:0)

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

答案 10 :(得分:0)

在您尝试添加部署密钥的同一个 gitlab 设置页面中,向下滚动一点,您将找到一个名为“私人可访问的部署密钥”的选项卡。单击它,您将找到您尝试添加的密钥。只需点击它旁边的“启用”,它就会起作用!

答案 11 :(得分:0)

就我而言,我已经在另一个存储库中添加了公钥。

修复:

  1. 在同一个 GitLab 页面上(设置 -> 存储库 -> 部署密钥
  2. 向下滚动并点击标签“可私人访问的部署密钥”
  3. 在列表中找到您的“部署密钥”,然后点击启用按钮

那么你就可以开始了。