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

Git配置多站点SSH密钥后访问GitHub触发publickey权限错误问题

问题原因

你配置的SSH规则触发条件不匹配实际访问场景:
你在~/.ssh/config中定义的GitHub配置段Host值为github,只有当你访问的目标主机名显式为github时才会触发该配置、调用对应的id_ed25519密钥。而你本地Git仓库的远程地址默认使用github.com作为主机名,完全匹配不到该配置段,SSH会默认调用全局id_rsa密钥进行认证,因此出现权限报错。
你之前尝试重启sshd服务是无效操作,sshd是SSH服务端进程,本地作为SSH客户端修改配置后无需重启任何服务,配置会在下次发起连接时自动生效。

解决方法(二选一即可)

方法1:调整SSH配置匹配规则

直接修改~/.ssh/config中GitHub相关的Host字段,让它能匹配你实际访问的主机名:

# 写法1:仅匹配完整github.com域名
Host github.com
    HostName github.com
    IdentityFile ~/.ssh/id_ed25519
    User git

# 写法2:同时匹配短名github和完整域名github.com,兼容两种访问方式
Host github github.com
    HostName github.com
    IdentityFile ~/.ssh/id_ed25519
    User git

修改配置后直接执行ssh -T git@github.com验证,返回Hi <你的用户名>! You've successfully authenticated, but GitHub does not provide shell access.即为配置生效。

方法2:修改Git仓库远程地址

如果你不想修改SSH配置,可以将本地仓库的远程地址主机名替换为你配置中定义的github:

git remote set-url origin git@github:<你的GitHub用户名>/<对应仓库名>.git

修改后执行git pull等操作即可正常触发配置中的密钥规则。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 21:54:04