我尝试添加一个新的ssh密钥到我的GitLab帐户,但我不断得到以下错误:
Fingerprint cannot be generated Key type is forbidden. Must be RSA, ECDSA, or ED25519
我所做的就是去指挥官那里输入命令
ssh-keygen cat ~/.ssh/id_rsa.pub
然后我通过网络浏览器将密钥复制到我的学校GitLab帐户中,并得到了上面提到的错误。为什么会发生这种情况,我如何才能成功上传我的密钥?
js4nwp541#
您需要执行以下操作,而不仅仅是ssh-keygen:
ssh-keygen
ssh-keygen -t ed25519 -C "email@example.com"
这将创建一个可以在Gitlab中使用的ED25519密钥,确保将email地址更改为您的email地址(与gitlab帐户相关联),然后将新生成的.pub密钥复制到您之前所在的位置。来源:https://docs.gitlab.com/ee/ssh/
ryoqjall2#
很有可能你是从终端的密钥 Package 中复制并粘贴了不应该存在的换行符。当你粘贴你的密钥时,它应该是一行一行的。它可能以ssh-rsa开头(如果你生成一个RSA密钥;其他键类型也以类似的方式开始),并以类似you@machine的形式结束。在ssh-rsa之后和you@machine之前应该各有一个空格,但不应该有换行符。粘贴时手动删除换行符,或者在适当的文本编辑器中打开文件,在文本编辑器中可以复制不带换行符的文件。
ssh-rsa
you@machine
neskvpey3#
我得到了相同的错误,然后使用由terraform生成的SSH密钥,并使用输出:
public_key_pem
通过使用的输出修复
public_key_openssh
wz8daaqr4#
使用以下命令生成SSH密钥后-ssh-keygen -t ed25519 -C "<comment>"然后将生成两个文件id_ed25519和id_ed25519.pub在代码编辑器中打开id_ed25519.pub文件并复制粘贴整个SSH密钥。
ssh-keygen -t ed25519 -C "<comment>"
id_ed25519
id_ed25519.pub
4条答案
按热度按时间js4nwp541#
您需要执行以下操作,而不仅仅是
ssh-keygen
:这将创建一个可以在Gitlab中使用的ED25519密钥,确保将email地址更改为您的email地址(与gitlab帐户相关联),然后将新生成的.pub密钥复制到您之前所在的位置。
来源:https://docs.gitlab.com/ee/ssh/
ryoqjall2#
很有可能你是从终端的密钥 Package 中复制并粘贴了不应该存在的换行符。
当你粘贴你的密钥时,它应该是一行一行的。它可能以
ssh-rsa
开头(如果你生成一个RSA密钥;其他键类型也以类似的方式开始),并以类似you@machine
的形式结束。在ssh-rsa
之后和you@machine
之前应该各有一个空格,但不应该有换行符。粘贴时手动删除换行符,或者在适当的文本编辑器中打开文件,在文本编辑器中可以复制不带换行符的文件。
neskvpey3#
我得到了相同的错误,然后使用由terraform生成的SSH密钥,并使用输出:
通过使用的输出修复
wz8daaqr4#
使用以下命令生成SSH密钥后-
ssh-keygen -t ed25519 -C "<comment>"
然后将生成两个文件
id_ed25519
和id_ed25519.pub
在代码编辑器中打开
id_ed25519.pub
文件并复制粘贴整个SSH密钥。