一)问题描述

每次SSH下载代码,提示找不到文件或文件夹,仔细看提示发现.ssh路径不太对,被转码了。而电脑里真是.ssh文件夹是在C盘下,安装操作系统时,用的中文用户名。

因为电脑名设置为中文,导致现在使用ssh秘钥从github以及其他仓库拉取代码时会出现如下报错。

使用用GitBash拉代码是正常的,用Windows自带的命令行、PowerShell却不行。那这个报错大概是调用了OpenSSH服务有关,OpenSSH不兼容中文目录导致。是说明你的.ssh目录设置的有问题,关于用户主目录(home)的问题,一般windows机器安装完git后home都会是C:\Users\用户名这种目录。

二)解决思路

尝试使用Git的SSH代替系统自带的SSH,配置了环境变量不好使。

由于电脑使用的是电脑自带的openssh,而我们可以使用自己安装的git下的ssh,我们可以把git的ssh目录加到环境变量中,将<git安装路径>\usr\bin\ssh.exe 添加到环境变量中。

换一个思路,让Git SSH配置挪到非中文路径下。

1)右键打开Git Bash

2)   运行export命令,临时修改HOME环境变量

设置你要保存的SSH文件路径(切记不要使用中文路径了)

 export HOME=D:\SDK\Git_HOME(你想设置的目录)

3)创新生成SSH公钥、私钥,或者把原来C盘的.SSH文件夹整个拷过来

Cpoy .ssh文件夹下的文件到新路径

这次可以正常使用不报错了

4)要永久生效,需要设置环境变量HOME,电脑重启Git还是可以找到.ssh目录

Git version 2.x系列

如果是Git version 2.x系列,请设置环境变量,增加HOME的环境变量,目录为:C:\Users\用户名(你想设置的目录),随后重启Git bash即可,输入cd ~/.ssh,会进入你设置好的目录

Git version 1.x系列

修改profile文件

如果是Git version 1.x系列,打开profile文件,文件位置:$\Git\etc\profile($替换成你的盘符)。
在profile中找到:HOME="$(cd "$HOME" ; pwd)"这个位置,在前面增加你想变成的home目录

# normalize HOME to unix path
HOME="C:\Users\用户名"
HOME="$(cd "$HOME" ; pwd)"

注意事项:

  • 些操作系统或终端对中文目录的编码支持不佳,可能导致 Git 无法正确识别路径
  • 解决:尽量避免在 Git 仓库路径中使用中文,或确保系统和终端使用 UTF-8 编码
  • 文件权限问题
Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐