SSH的指点与Gitlab.com不匹配 [英] Fingerpints for SSH do not match with Gitlab.com
本文介绍了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屋!
查看全文