指纹已经采取gitlab

lea*_*lop 15 ssh-keys gitlab

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

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

Key is invalid
Fingerprint has already been taken
Fingerprint cannot be generated
Run Code Online (Sandbox Code Playgroud)

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

Man*_*har 37

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

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

导航到配置文件中的 .ssh 文件夹(甚至适用于 Windows)并运行命令

ssh-keygen -t rsa
Run Code Online (Sandbox Code Playgroud)

当要求提供文件名时,给出另一个文件名 id_rsa_2(或任何其他)。输入无密码(或其他)。你最终会制作 id_rsa_2 和 id_rsa_2.pub

使用命令

cat id_rsa_2.pub
Run Code Online (Sandbox Code Playgroud)

将密钥复制并保存在“个人”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>
Run Code Online (Sandbox Code Playgroud)

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

例如而不是使用

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

简单地使用

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

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

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


小智 26

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

$ ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
Run Code Online (Sandbox Code Playgroud)

当它问:

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

请输入 /home/<NAME>/.ssh/id_rsa2

$ ssh-add ~/.ssh/id_rsa2
Run Code Online (Sandbox Code Playgroud)

  • 更正:当它询问:`生成公共/私人 rsa 密钥对。输入保存密钥的文件 (/home/&lt;NAME&gt;/.ssh/id_rsa): ` Please enter `/home/&lt;NAME&gt;/.ssh/id_rsa2` (2认同)

tha*_*s.a 11

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

使固定:

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

然后你就可以走了。


Men*_*nga 10

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

这对我有用.

  • 尝试添加我的第一个 SSH 密钥时对我不起作用。我检查了没有换行符,并且删除了实际密钥之后的所有内容。 (2认同)

小智 9

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

  • 仅供参考,我认为当密钥用作存储库的部署密钥时,它也会失败。我想这更难找到。 (4认同)
  • 如何找出另一个帐户是哪个?你知道这个吗? (2认同)

her*_*tim 6

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

pbcopy < ~/.ssh/id_rsa.pub
Run Code Online (Sandbox Code Playgroud)

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


Sin*_*dem 6

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