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

同一Mac配置双Git账户,推送个人私有仓库遇权限拒绝问题

问题分析与解决方案

问题根源

  1. SSH配置中x-GitHub的User字段设置错误:GitHub的SSH连接固定使用git作为用户,而非你的工作账户名x。当SSH代理中存在多个密钥时,会优先尝试匹配的密钥,导致推送时错误使用了工作账户的密钥,触发权限拒绝。
  2. Nethsara的Host配置缺少User git字段,SSH连接时用户身份不明确,可能引发密钥匹配逻辑混乱。

解决方案

1. 修正SSH配置文件

编辑~/.ssh/config,调整为以下内容:

Host x-GitHub
    HostName github.com
    User git
    PreferredAuthentications publickey
    IdentityFile /Users/siyum/.ssh/x-GitHub
    UseKeychain yes
    AddKeysToAgent yes

Host Nethsara
    HostName github.com
    User git
    PreferredAuthentications publickey
    IdentityFile /Users/siyum/.ssh/nethsara
    UseKeychain yes
    AddKeysToAgent yes

2. 验证SSH连接有效性

分别测试两个账户的SSH认证:

  • 测试个人账户:执行 ssh -T Nethsara,正常反馈应为:

    Hi Nethsara! You've successfully authenticated, but GitHub does not provide shell access.

  • 测试工作账户:执行 ssh -T x-GitHub,正常反馈应为:

    Hi x! You've successfully authenticated, but GitHub does not provide shell access.

3. 确认仓库远程地址配置

进入克隆的私有仓库,执行 git remote -v,检查输出是否为:

origin  git@Nethsara:Nethsara/private-repo.git (fetch)
origin  git@Nethsara:Nethsara/private-repo.git (push)

如果地址不正确,执行以下命令重置:

git remote set-url origin git@Nethsara:Nethsara/private-repo.git

4. 仓库本地身份配置(可选)

全局user.name仅影响提交记录显示的用户名,与SSH身份认证无关。如果需要区分工作/个人仓库的提交身份,可在个人仓库内单独配置:

git config user.name "Nethsara"
git config user.email "你的个人邮箱地址"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 13:25:20