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

如何为不同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密钥

针对每个仓库单独配置:

  1. 右键目标仓库文件夹 → 选择「TortoiseGit」→「设置」;
  2. 在左侧菜单选择「Git」→「远程」,选中origin;
  3. 在「Putty Key」栏选择对应账号的ppk文件(repo1选account1.ppk,repo2选account2.ppk);
  4. 确认设置为仓库级(窗口顶部显示「当前仓库的设置」,而非「全局设置」),点击确定保存。

步骤3:排除全局SSH配置干扰

打开TortoiseGit全局设置(右键空白处→TortoiseGit→设置→选择「全局」):

  • 进入「Git」→「网络」,确保「Putty Key」栏为空(不要全局指定密钥,避免覆盖仓库级配置);
  • 确认SSH客户端为TortoisePlink.exe(TortoiseGit自带工具,确保密钥配置生效)。

2. 设置默认凭证+按需覆盖

可以设置全局默认凭证,再为特定仓库单独配置覆盖:

步骤1:配置全局默认凭证

  1. 右键空白处 → TortoiseGit → 设置 → 选择「全局」;
  2. 进入「Git」→「网络」,在「Putty Key」栏选择你常用账号的ppk(比如account1.ppk作为默认);
  3. 保存设置。

步骤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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 12:05:31