【问题标题】:How to know the SSH key's length?如何知道 SSH 密钥的长度?
【发布时间】:2019-11-11 14:50:47
【问题描述】:

如何知道 SSH 密钥的长度?

最近我的git pull 收到以下错误,

$ git pull
> GitLab: Your SSH key must be at least 2048 bits.
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

以前一切正常的地方。

与其猜测(或试错)哪个密钥是罪魁祸首,是否可以列出我所有的 SSH 密钥的长度?

更新:

  • 只有git pull 给了我上述错误。即,我的公钥仍然可以:

    $ ssh -T git@salsa.debian.org
    Welcome to GitLab, @myid-guest!
    
  • ssh-keygen -lf 可能不是答案,因为我正在关注 https://docs.gitlab.com/ee/ssh/,他建议使用 ed25519 作为默认密钥,并且还指示要生成新的 ED25519 SSH 密钥对,请执行 @ 987654329@。但是,我的ssh-keygen -lf 报告说

    $ ssh-keygen -lf id_ed25519.pub
    256 SHA256:PO2bk6B...
    

推荐的 ED25519 SSH 密钥不太可能只有 256 位长。

【问题讨论】:

标签: linux ubuntu key ssh-keys openssh


【解决方案1】:

你可以试试

ssh-keygen -lf keygen.pub

【讨论】:

  • @xpt :我认为它显示正确,因为 ED25519 仅为 256 位 请参阅本文“en.wikipedia.org/wiki/EdDSA#performance”,其中提到公钥长度为 256 位,签名大小是其两倍。
  • 可能你的实例不支持ED25519,你可以回退到RSA ..docs.gitlab.com/ee/ssh/#ed25519-ssh-keys
  • 在收到该错误后,我生成了一个新的 ED25519 SSH 密钥对。我花了一段时间来验证它是否有效,因为我的情况很复杂。无论如何,它实际上是有效的。即,RSA 密钥要求 2048 位。至于 ED25519 SSH 密钥,默认的 256 位对于 GitLab 来说已经足够了!所以,谢谢!
【解决方案2】:

你可能不小心删除了 Gitlab 用来验证你的公钥。 我会建议与他们联系,否则请查看。

【讨论】:

  • @xpt 你为什么不尝试重新配置 git 整体。试试:sudo dpkg-reconfigure git
  • “2048 位”要求是由服务器强加的,位于 salsa.debian.org,如 OP 中所述。在这种情况下,我认为在客户端重新配置 git 不会有任何帮助。
  • @xpt 很抱歉,但我只能做到这一点。希望你能解决它,尝试联系他们的支持团队。
  • 感谢约翰尼的帮助。接受的答案已经有一个完美的解决方案,并且,嗯......实际上在您的 git 重新配置建议之前。所以,再次,我想借此机会欢迎您访问 SO 站点。您可能会发现它与您习惯的论坛网站不同。
猜你喜欢
  • 1970-01-01
  • 2018-07-03
  • 1970-01-01
  • 1970-01-01
  • 2013-03-17
  • 1970-01-01
  • 2021-03-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多