我正在尝试将新的ssh密钥添加到我的GitLab帐户,但是我不断收到以下错误消息:
Fingerprint cannot be generated
Key type is forbidden. Must be RSA, ECDSA, or ED25519
我所做的是去Cmder并输入命令
ssh-keygen
cat ~/.ssh/id_rsa.pub
然后我将密钥通过网络浏览器复制到我的学校GitLab帐户中,并得到了上面提到的错误。
为什么会这样,我如何成功上传密钥?
答案 0 :(得分:0)
您需要执行以下操作,而不只是ssh-keygen
:
ssh-keygen -t ed25519 -C "email@example.com"
这将创建可与Gitlab一起使用的ED25519密钥。确保将电子邮件更改为您的电子邮件(与gitlab帐户相关联)。然后,使用新生成的.pub密钥并将其复制到以前的位置。
答案 1 :(得分:0)
您很有可能会从终端中的密钥包装中复制并粘贴换行符,而这些字符本不应该存在。
粘贴密钥时,密钥应全部为一行。它可能以ssh-rsa
开头(如果您生成RSA密钥;其他密钥类型将以类似的开头),并以类似you@machine
的结尾。在ssh-rsa
之后应该有一个空格,在you@machine
之前应该有一个空格,但是不应存在换行符。
粘贴或在适当的文本编辑器中打开文件时,手动删除换行符即可在其中复制而无需换行符。
答案 2 :(得分:0)
我遇到了同样的错误,然后使用了 terraform 生成的 SSH 密钥并使用了以下输出:
public_key_pem
通过使用
的输出修复public_key_openssh