Git BASH中$HOME路径拼接异常导致SSH克隆仓库失败如何解决?
问题根因
- 该路径拼接错误不是预期行为,你判断的问题因果完全正确:HOME变量路径异常是SSH克隆失败的直接原因,Git执行SSH操作时会默认到
$HOME/.ssh目录读取密钥、存储主机信任记录,路径错误导致无法创建对应目录,自然无法完成主机真实性校验,后续克隆流程直接中断。 - 路径拼接错误本质是Git Bash的Unix路径转换逻辑异常,同时Git Bash的环境变量读取优先级高于Windows系统环境变量:Git Bash启动时会优先加载自身的
/etc/profile、用户目录下的.bash_profile/.bashrc配置中的HOME值,而不是直接读取Windows系统的环境变量,这也是你执行setx home "C:/Users/username"不生效的核心原因。
修复方案
临时验证方案
直接在当前打开的Git Bash窗口执行如下命令,替换为你实际的Windows用户名:
export HOME=/c/Users/你的实际用户名
执行后用echo $HOME确认输出为/c/Users/你的实际用户名,再尝试执行Git克隆命令,确认操作可以正常执行即可验证问题根因。
永久修复方案
两种二选一即可:
- 修改Git Bash全局配置:
打开Git Bash安装目录下的etc/profile文件,在文件末尾添加如下内容(替换为实际用户名):
保存后重启Git Bash即可永久生效。export HOME="/c/Users/你的实际用户名" - 修改Windows系统环境变量(兼容性更好):
打开Windows系统环境变量设置面板,新建大写HOME用户变量,值填写C:\Users\你的实际用户名,修改完成后重启电脑,所有终端都会读取到正确的HOME路径。
内容的提问来源于stack exchange,提问作者Conner M.
相关产品推荐
相关产品推荐

