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

Git权限异常:可SSH克隆仓库但无法执行push操作

解决Git Push时SSH公钥权限拒绝问题

1. 确认远程仓库URL配置

检查本地仓库的.git/config文件,确保远程仓库的URL使用了你配置的github-work主机名,而非默认的github.com:

[remote "origin"]
    url = git@github-work:<用户名>/<仓库名>.git
    fetch = +refs/heads/*:refs/remotes/origin/*

如果此处仍是git@github.com:...,push操作会走默认SSH密钥而非你配置的work密钥,直接导致权限错误。

2. 修正SSH配置中的密钥路径

你的~/.ssh/config里IdentityFile work是相对路径,SSH会从当前执行目录寻找密钥,而非~/.ssh目录,需改为绝对路径:

Host github-work
    Hostname github.com
    IdentityFile ~/.ssh/work

3. 确保密钥文件权限合规

SSH对密钥文件权限要求严格,必须设置为仅当前用户可读:

chmod 600 ~/.ssh/work
chmod 644 ~/.ssh/work.pub

权限不符合要求会导致SSH自动忽略该密钥,转而使用默认密钥(如id_rsa),触发权限拒绝。

4. 测试SSH连接有效性

执行以下命令测试github-work的SSH认证是否正常:

ssh -T git@github-work

若返回Hi <用户名>! You've successfully authenticated, but GitHub does not provide shell access.,说明认证成功,此时再执行git push即可正常工作。

5. 排查Git远程配置优先级

若以上步骤都无效,检查是否有全局Git配置覆盖了本地配置:

git config --global --get remote.origin.url

如果输出存在且不是git@github-work:...,可删除全局配置:

git config --global --unset remote.origin.url

确保本地仓库的配置优先生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 07:35:00