终端与GitHub账户SSH密钥指纹不匹配,需如何处理?
GitHub SSH验证时主机密钥指纹与账户认证密钥不一致的问题
核心区别说明
执行ssh -T git@github.com时终端弹出的是GitHub服务器的主机密钥指纹,和你添加到GitHub账户的个人SSH认证密钥指纹本来就不是同一类东西:
- 主机密钥指纹:是GitHub官方服务器的公钥标识,作用是让你本地确认正在连接的确实是GitHub的服务器,避免中间人攻击;
- 个人认证密钥指纹:是你本地生成的密钥对的公钥标识,作用是让GitHub服务器验证你的身份,确认你有权操作对应仓库。
所以两者指纹不一致是完全正常的,不存在“错误”一说。
是否需要修正?
不需要修正,只要确认该主机密钥指纹是GitHub官方的即可。你可以直接输入yes确认连接,之后本地会自动把GitHub的主机密钥存入~/.ssh/known_hosts文件,后续再连接就不会弹出这个提示了。
关于你已执行的操作
你做的以下操作和当前的主机指纹提示无关,这些操作是用来解决身份验证失败(比如推送/拉取仓库时提示权限不足)的问题:
- 删除GitHub中的SSH密钥
- 生成新的SSH密钥
- 将新SSH密钥添加至SSH代理
内容的提问来源于stack exchange,提问作者Jasmine
相关产品推荐
相关产品推荐

