You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

克隆GitHub dotfiles仓库遇SSH/HTTPS认证问题求助

问题背景

尝试克隆公开仓库https://github.com/kortina/dotfiles时遇到一系列问题:

  • 使用旧的~/.ssh/known_hosts文件时,出现「REMOTE HOST IDENTIFICATION HAS CHANGED」警告,主机密钥验证失败
  • 更新known_hosts后,执行git clone git@github.com:kortina/dotfiles.git仍提示「Permission denied (publickey)」
  • 删除known_hosts后重新确认连接,仍出现主机密钥验证失败
  • 改用HTTPS地址克隆后,提交推送因GitHub取消密码认证失败

问题解答

问题1:为何删除known_hosts后连接提示「(yes/no/[fingerprint])」?

这是SSH的默认安全机制:known_hosts文件存储着你已信任的远程主机密钥,删除后首次连接github.com时,SSH无法确认目标主机的合法性,会弹出提示让你手动验证主机指纹,目的是防止中间人攻击,确保你连接的是真实的GitHub服务器,属于正常现象。

问题2:HTTPS方式推送为何失败?

GitHub在2021年8月就取消了账号密码形式的HTTPS认证,现在通过HTTPS推送代码必须使用**个人访问令牌(PAT)**替代密码。如果仍用旧的账号密码提交,会被服务器直接拒绝。

恢复SSH命令正常操作的步骤

  1. 清理旧的GitHub主机密钥
    执行命令自动移除known_hosts中github.com的相关条目:
    ssh-keygen -R github.com
    
  2. 验证并信任GitHub主机指纹
    执行连接测试命令,弹出指纹提示时,对照GitHub官方公布的指纹确认后输入yes:
    ssh -T git@github.com
    
  3. 检查SSH密钥配置
    • 确认本地存在SSH密钥:查看~/.ssh目录下是否有id_ed25519.pub或id_rsa.pub等公钥文件,没有则执行以下命令生成(替换为你的GitHub绑定邮箱):
      ssh-keygen -t ed25519 -C "your_email@example.com"
      
    • 确认公钥已添加到GitHub账号:登录GitHub后进入「Settings → SSH and GPG keys」,检查是否有对应的公钥条目,没有则复制公钥文件内容添加进去。
  4. 测试SSH连接
    再次执行ssh -T git@github.com,如果看到类似Hi [你的用户名]! You've successfully authenticated, but GitHub does not provide shell access.的提示,说明SSH配置正常。
  5. 重新克隆仓库
    执行原SSH克隆命令即可正常操作:
    git clone git@github.com:kortina/dotfiles.git
    

内容的提问来源于stack exchange,提问作者kortina

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 10:32:39