【问题标题】:"Fingerprint cannot be generated" when adding new SSH key to gitlab account将新的 SSH 密钥添加到 gitlab 帐户时“无法生成指纹”
【发布时间】:2021-04-28 01:51:12
【问题描述】:

我正在尝试向我的 GitLab 帐户添加新的 ssh 密钥,但我不断收到以下错误:

Fingerprint cannot be generated
Key type is forbidden. Must be RSA, ECDSA, or ED25519

我所做的是去Cmder并输入命令

ssh-keygen
cat ~/.ssh/id_rsa.pub

然后我通过网络浏览器将密钥复制到我的学校 GitLab 帐户中并得到了上述错误。

为什么会发生这种情况,我怎样才能成功上传我的密钥?

【问题讨论】:

  • 您是否能够使用下面显示的任何一个答案来解决这个问题?如果是这样,请记得accept it。这会向其他用户显示您已找到解决方案。

标签: git github ssh


【解决方案1】:

您需要执行以下操作,而不仅仅是ssh-keygen

 ssh-keygen -t ed25519 -C "email@example.com"

这将创建一个可用于 Gitlab 的 ED25519 密钥。确保将电子邮件更改为您的电子邮件(与 gitlab 帐户关联)。然后获取新生成的 .pub 密钥并将其复制到之前的相同位置。

来源: https://docs.gitlab.com/ee/ssh/

【讨论】:

  • 我按照您所说的进行了尝试,但仍然遇到完全相同的错误。
  • @DávidČano 你试试看:ssh-keygen -t ed25519 -C "email@example.com" 这是建议的密钥类型; ED25519。
  • 终于成功了,非常感谢!你刚刚挽救了我的理智。
  • @DávidČano 我编辑了我的答案以反映正确的步骤。如果您认为它回答了您的问题,您介意提交它作为答案吗?
  • RSA 密钥应该没问题。这是错误消息中列出的关键类型之一。
【解决方案2】:

很有可能您正在从终端中的密钥包装中复制和粘贴不应存在的换行符。

当您粘贴您的密钥时,它应该都是一行。它可能以 ssh-rsa 开头(如果您生成 RSA 密钥;其他密钥类型将以类似方式开头)并以 you@machine 之类的内容结尾。 ssh-rsa 之后应该有一个空格,you@machine 之前应该有一个空格,但不应存在换行符。

在粘贴时手动删除换行符,或者在适当的文本编辑器中打开文件,您可以在没有换行符的情况下复制它。

【讨论】:

    【解决方案3】:

    我遇到了同样的错误,然后使用了 terraform 生成的 SSH 密钥并使用了以下输出:

    public_key_pem 
    

    通过使用输出来修复

    public_key_openssh 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-30
      • 2016-11-10
      • 2021-11-29
      • 1970-01-01
      • 2015-08-21
      • 2015-11-07
      相关资源
      最近更新 更多