我格式化了我的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密钥?
答案 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)
就我而言,我已经在另一个存储库中添加了公钥。
修复:
那么你就可以开始了。