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

如何配置GitHub使用指定SSH密钥并验证密钥关联状态

Git推送GitHub公钥权限报错修复方案

报错信息

执行git push时返回以下错误:

no such identity: /users/me/.ssh/id_ed25519: No such file or directory
git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.

强制GitHub使用fkey密钥的配置步骤

  • 打开SSH客户端配置文件,路径为/users/me/.ssh/config,如果该文件不存在直接新建即可。
  • 在文件中添加以下针对GitHub的主机匹配规则:
Host github.com
  HostName github.com
  User git
  IdentityFile /users/me/.ssh/fkey
  IdentitiesOnly yes

其中IdentitiesOnly yes为核心配置,作用是强制SSH仅使用指定路径的密钥发起认证,不会自动扫描尝试默认路径下的id_ed25519、id_rsa等密钥,从根源上避免找不到不存在密钥的报错。

  • 保存文件后,修正私钥和配置文件的权限,避免SSH因权限规则拒绝读取文件,执行以下命令:
chmod 600 /users/me/.ssh/config /users/me/.ssh/fkey

验证fkey密钥关联正确性的操作

  • 测试SSH公钥认证连通性:执行命令ssh -T git@github.com,如果返回Hi [你的GitHub用户名]! You've successfully authenticated, but GitHub does not provide shell access.的提示,说明fkey已经可以正常通过GitHub的公钥校验。
  • 确认本地仓库远程地址格式:进入本地仓库目录,执行git remote -v,确认origin的fetch、push地址均为git@github.com:[你的用户名]/[仓库名].git格式。如果当前是HTTPS地址,执行git remote set-url origin git@github.com:[你的用户名]/[仓库名].git即可切换,不需要删除仓库重新克隆。
  • 模拟推送验证链路:执行git push --dry-run做无副作用的推送模拟,如果没有返回公钥权限报错,说明配置完全生效,后续实际推送会自动调用fkey密钥。
  • 查看实时认证密钥确认匹配:如果需要确认当前认证过程确实使用fkey,可执行ssh -vT git@github.com开启调试日志,在输出中找到Offering public key: /users/me/.ssh/fkey以及后续的Authenticated to github.com相关行,即可证明当前认证链路使用的就是指定的fkey密钥。你在GitHub账户SSH密钥列表中已经能看到fkey的公钥记录,只要上述连通性测试通过,就说明该密钥和你的账户已经正确绑定,不需要额外操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 15:48:17