如何为不同GitHub仓库配置TortoiseGit专属SSH凭证及默认凭证?
解决TortoiseGit多GitHub账号SSH凭证配置问题
问题根源分析
你推送repo1时出现Permission to username1/MyRepo1.git denied to username2,核心原因是:
- 全局SSH凭证(或默认PuTTY密钥)优先覆盖了repo1的仓库级配置;
- repo2使用HTTPS格式URL,导致其配置的PuTTY Key未生效,但全局可能默认加载了username2的密钥,进而干扰了repo1的SSH认证。
1. 为不同仓库配置独立SSH凭证的步骤
步骤1:统一使用SSH格式远程URL
将所有仓库的远程URL改为SSH格式(HTTPS格式会忽略PuTTY Key配置):
- repo1的URL保持:
git@github.com:username1/MyRepo1.git - repo2的URL修改为:
git@github.com:username2/myRepo2.git
步骤2:仓库级配置对应PuTTY密钥
针对每个仓库单独配置:
- 右键目标仓库文件夹 → 选择「TortoiseGit」→「设置」;
- 在左侧菜单选择「Git」→「远程」,选中
origin; - 在「Putty Key」栏选择对应账号的ppk文件(repo1选
account1.ppk,repo2选account2.ppk); - 确认设置为仓库级(窗口顶部显示「当前仓库的设置」,而非「全局设置」),点击确定保存。
步骤3:排除全局SSH配置干扰
打开TortoiseGit全局设置(右键空白处→TortoiseGit→设置→选择「全局」):
- 进入「Git」→「网络」,确保「Putty Key」栏为空(不要全局指定密钥,避免覆盖仓库级配置);
- 确认SSH客户端为
TortoisePlink.exe(TortoiseGit自带工具,确保密钥配置生效)。
2. 设置默认凭证+按需覆盖
可以设置全局默认凭证,再为特定仓库单独配置覆盖:
步骤1:配置全局默认凭证
- 右键空白处 → TortoiseGit → 设置 → 选择「全局」;
- 进入「Git」→「网络」,在「Putty Key」栏选择你常用账号的ppk(比如
account1.ppk作为默认); - 保存设置。
步骤2:为特定仓库覆盖配置
对需要使用非默认凭证的仓库(比如repo2),按照「1. 步骤2」的仓库级配置流程,指定对应ppk文件即可。仓库级配置会自动优先于全局配置生效。
验证配置有效性
配置完成后,右键仓库 → TortoiseGit → 「推送」测试;若仍有问题,可查看仓库的.git/config文件,确认配置是否生效:
[remote "origin"] url = git@github.com:username1/MyRepo1.git puttykey = path/to/account1.ppk
确保puttykey字段存在且路径正确。
内容的提问来源于stack exchange,提问作者caponica
相关产品推荐
相关产品推荐

