Git for Windows无法添加主机到known_hosts:用户目录错误
Git for Windows SSH 路径异常问题排查与解决
问题原因分析
SSH会尝试访问/home/abc/.ssh,通常是以下几种情况导致:
- Git for Windows自带的OpenSSH读取了错误的配置(系统级或用户级
ssh_config),硬编码了UserKnownHostsFile或Home路径; - Git Bash启动时加载的自定义脚本(如
.bashrc、.profile)重置了HOME变量; - 部分旧版本Git for Windows存在环境变量读取bug,导致
$HOME未被正确识别。
解决方案
1. 排查SSH配置与环境变量
- 打开Git Bash,执行
ssh -G git@my_bitbucket.hu,查看输出中的home和userknownhostsfile参数,确认是否指向错误路径。 - 若配置异常,检查系统级配置文件
/etc/ssh/ssh_config(对应Windows路径C:\Program Files\Git\etc\ssh\ssh_config)和用户级~/.ssh/config,删除或注释掉硬编码的Home或UserKnownHostsFile配置项。 - 执行
echo $HOME,若输出不是/c/Users/abc,检查~/.bashrc、~/.bash_profile等启动脚本,删除错误的export HOME="/home/abc"配置。
2. 手动创建正确的.ssh目录并设置权限
SSH对.ssh目录和文件权限要求严格,需手动创建并配置:
mkdir -p /c/Users/abc/.ssh chmod 700 /c/Users/abc/.ssh touch /c/Users/abc/.ssh/known_hosts chmod 600 /c/Users/abc/.ssh/known_hosts
3. 强制指定SSH配置
如果以上方法无效,可通过Git配置强制指定SSH使用正确路径:
git config --global core.sshCommand "ssh -o UserKnownHostsFile=/c/Users/abc/.ssh/known_hosts -o IdentitiesOnly=yes"
4. 重置Git for Windows
若问题仍存在,尝试重新安装Git for Windows,安装时选择默认的OpenSSH选项,避免修改环境变量相关配置。
内容的提问来源于stack exchange,提问作者GNA
相关产品推荐
相关产品推荐

