SSH的指点与Gitlab.com不匹配 [英] Fingerpints for SSH do not match with Gitlab.com

查看:58
本文介绍了SSH的指点与Gitlab.com不匹配的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在gitlab.com向我的帐户添加了ED25519公钥。然后,我将.ssh/config设置为使用Host gitlab.com的私钥:

Host gitlab.com gitlab.*.com
    User git
    IdentityFile ~/.ssh/gitlab_ed25519

当我执行git fetch时,我会看到密钥的指纹:

The authenticity of host 'gitlab.com (35.231.145.151)' can't be established.
ECDSA key fingerprint is SHA256:HbW3g8zUjNSksFbqTiUWPWg2Bq1x8xdGUrliXFzSnUw.
Are you sure you want to continue connecting (yes/no/[fingerprint])?

然后我尝试验证这是否与我计算机上的公钥匹配:

$ ssh-keygen -lf ~/.ssh/gitlab_ed25519.pub
256 SHA256:Gc/kdTZNJJ0AkdRuZmXOnZw77mS2+osIHQd0pRwJxZA comment (ED25519)

这些不匹配。即使我在gitlab.com上添加了Ed25519密钥,他们的SSH服务器仍然报告ECDSA密钥的指纹,这重要吗?难道不应该说指纹是ED25519的吗?我做错了什么?为什么指纹不匹配?

推荐答案

当您运行ssh-keygen -lf时,您将显示您的密钥的指纹。远程主机GitLab也有一个或多个与您的密钥不同的密钥。您的密钥用于向远程服务器标识您,而GitLab的密钥用于向您标识它(服务器),因此它们必然不同。

如果要验证指纹,可以转到https://gitlab.com/help/instance_configuration查找GitLab的指纹并验证它们是否正确。

您看到提供ECDSA密钥的原因是OpenSSH更喜欢ECDSA而不是Ed25519密钥。这不是对安全性的评论,因为大多数人都同意Ed25519密钥与256位ECDSA密钥一样安全(或更安全),而且更多的是为了向后兼容。当OpenSSH添加Ed25519密钥时,如果它们的优先级高于ECDSA密钥,则下次登录时将显示更改的主机密钥错误。

如果您希望gitlab.com首选Ed25519键,可以在~/.ssh/config中将以下指令添加到您的条目中:

HostKeyAlgorithms ssh-ed25519,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,rsa-sha2-512,rsa-sha2-256

这篇关于SSH的指点与Gitlab.com不匹配的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆