ssh密钥-指纹已经被拿走了



我格式化了我的Windows 7笔记本电脑,并试图让git安装程序再次工作,我安装了git和源代码树应用程序。

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

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

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

我试图添加的公钥已经与'work' Gitlab帐户一起使用,我在试图与'personal' Gitlab帐户使用相同的密钥时收到了上述错误。

解决方案 -在同一台机器上添加另一个公钥,并与'personal' gitlab帐户一起使用(都在同一台机器上)。

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

ssh-keygen -t rsa
当被要求提供文件名时,

给出另一个文件名id_rsa_2(或任何其他)。输入无密码短语(或其他)。你最终会得到id_rsa_2和id_rsa_2.pub

使用命令

cat id_rsa_2.pub

复制并保存密钥到'personal' Gitlab帐户。

在。ssh文件夹中创建一个名为config的无扩展名的文件

把这段配置放到你的配置文件中

Host           gitlab.com
HostName       gitlab.com
IdentityFile   C:Users<user name>.sshid_rsa
User           <user name>

Host           gitlab_2
HostName       gitlab.com
IdentityFile   C:Users<user name>.sshid_rsa_2
User           <user name>

现在当你想使用'personal' gitlab帐户时,只需在git url中更改别名即可操作远程服务器。

例如

而不是使用

git克隆git@ gitlab.com :..............

简单地使用

git克隆git@ gitlab_2 :...............

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

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

Gitlab可以在您过去项目的另一个帐户中使用您的ssh-key -所以,解决此问题的最简单方法是创建新的ssh-pair,将其添加到ssh-agent并添加id_rsa2。发布到你的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):  

Please enter /home/<NAME>/.ssh/id_rsa2

$ ssh-add ~/.ssh/id_rsa2

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

这对我起了作用。

我得到了同样的错误,因为我已经在gitlab中添加了这个键到另一个帐户。

在我的例子中,我已经在另一个repo中添加了公钥。

修复:

  1. 在同一个GitLab页面(Settings ->库→部署键)
  2. 向下滚动并单击选项卡"私人可访问的部署键"
  3. 找到您的"部署键"

那你就可以走了。

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

pbcopy < ~/.ssh/id_rsa.pub

如果需要,将id_rsa替换为我的特定键名。上面的命令在OSX上运行。其他系统需要不同的命令,它们列在以下页面:http://doc.gitlab.com/ce/ssh/README.html.

我的SSH密钥存储在旧的Gitlab帐户中,我删除了它,问题解决了。

新建一个关键h1> 上解决方案都不适合我,所以我备份了我的旧密钥并创建了一个新的。 https://help.github.com/articles/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent/

#osx10.12.6

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

还要在密钥的开头添加"ssh-rsa"。

在我的例子中,我的公钥必须以某种方式附加到特定的存储库。

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

添加新的ssh密钥该ssh密钥可能被其他用户使用。当别人使用ssh密钥时,你必须得到这个错误,不要担心创建一个新的ssh密钥并使用主题。

在您尝试添加部署键的同一个gitlab设置页面中向下滚动一点,您将发现一个名为"private accessible deploy keys"的选项卡。点击它,你会发现你想要添加的键列在那里。点击"启用"从它旁边,它会工作!

如果这些建议都不起作用:

首先-不要处理安全密钥耗尽或匆忙的情况,不要犯愚蠢的错误(我的情况)。

第二-复制为GitLab部署密钥公钥,而不是私钥(我的情况也是如此,尽管我很清楚密钥是如何工作的,只是赶时间)。

在我的例子中,我之前没有向任何其他项目添加现有的Deploy键,并且我不是任何项目的成员。

为了能够为新项目启用部署键,您需要将自己添加为已经启用该键的项目的成员。

然后在新建项目-设置-存储库-部署密钥-私有访问部署密钥列表中,您将看到此密钥和启用按钮。

在本文档中可以找到答案https://gitlab-docs.creationline.com/ee/user/project/deploy_keys/

在private accessible deploy keys选项卡中,您可以启用private已导入到其他项目中的密钥。如果你可以访问这些键,因为你有:

    先前自己在不同的项目中上传了密钥。
  • 您是导入密钥的其他项目的维护者或所有者。

但是如果你有GitLab管理员配置文件,即使有&;user &;也足够了。作为项目成员的特权。

您可以从您的另一个GitLab帐户中删除此SSH密钥,然后您可以将此SSH密钥添加到您的GitLab帐户

最新更新