Bitbucket SSH密钥配置后TortoiseGit克隆失败的问题求助
解决TortoiseGit SSH克隆失败(Git Bash可正常工作)的问题
一、检查TortoiseGit的SSH客户端配置
TortoiseGit默认可能使用自带的TortoiseGitPlink.exe,而Git Bash用的是Git自带的OpenSSH,后者对ed25519密钥支持更完善。需确保TortoiseGit使用Git的SSH客户端:
- 右键空白处→TortoiseGit→Settings,进入设置界面;
- 切换到「Network」选项卡,查看「SSH client」的路径;
- 将路径修改为Git安装目录下的
ssh.exe,例如C:\Program Files\Git\usr\bin\ssh.exe; - 点击「Apply」保存配置。
二、验证并确保TortoiseGit使用正确的SSH密钥
1. 手动指定密钥或配置SSH config
如果默认的%USERPROFILE%\.ssh\id_ed25519未被识别,可通过两种方式指定:
- 方式一:TortoiseGit设置中指定:在Network选项卡点击「...」按钮,选择本地的
id_ed25519私钥文件; - 方式二:创建SSH config文件:在
%USERPROFILE%\.ssh目录下新建/修改config文件,添加Bitbucket专属配置:
Host ${repoUrl} Port ${sshPort} User git IdentityFile ~/.ssh/id_ed25519
替换${repoUrl}和${sshPort}为实际值(默认22端口可省略Port行)。
2. 测试SSH连接有效性
用TortoiseGit配置的SSH客户端测试Bitbucket连接,排查认证问题:
- 打开CMD,执行对应命令(以Git的ssh.exe为例):
"C:\Program Files\Git\usr\bin\ssh.exe" -v git@${repoUrl} -p ${sshPort}
- 查看输出日志,确认是否加载了
id_ed25519密钥,以及是否完成公钥认证。
三、验证Git Bash与TortoiseGit的SSH子系统一致性
1. 对比SSH客户端路径
- Git Bash:打开Git Bash,执行
which ssh,输出应为/usr/bin/ssh,对应Windows路径C:\Program Files\Git\usr\bin\ssh.exe; - TortoiseGit:在Settings→Network中查看「SSH client」路径,确认与Git Bash的路径完全一致。
2. 对比SSH版本
分别在两个环境中执行版本命令,确保版本相同:
# Git Bash中执行 ssh -V # CMD中执行(替换为你的SSH路径) "C:\Program Files\Git\usr\bin\ssh.exe" -V
四、修复ssh-agent相关问题
若密钥需要ssh-agent托管,需确保TortoiseGit能访问到正确的agent实例:
- 临时方案:打开Git Bash,启动agent并添加密钥:
eval $(ssh-agent -s) ssh-add ~/.ssh/id_ed25519
然后从Git Bash中启动TortoiseGit:start tortoisegitproc.exe,让其继承Git Bash的环境变量;
- 永久方案:配置Windows OpenSSH服务自动启动:
- Win+R输入
services.msc打开服务管理器; - 找到「OpenSSH Authentication Agent」,设置启动类型为「自动」并启动服务;
- 打开CMD执行
ssh-add %USERPROFILE%\.ssh\id_ed25519添加密钥,后续TortoiseGit可直接使用该agent。
- Win+R输入
五、确认克隆地址格式正确性
- 自定义端口时,必须保留
ssh://前缀:ssh://git@${repoUrl}:${sshPort}/${pathToProject}.git; - 若使用默认22端口,可简化为
git@${repoUrl}:${pathToProject}.git(无需ssh://)。
内容的提问来源于stack exchange,提问作者Sebsen36
相关产品推荐
相关产品推荐

