
🔹 核心问题原因
-
Git Bash / OpenSSH 在解析
C:\Users\中文用户名\.ssh路径时,可能因为编码问题导致乱码(/c/Users/\325\324\261\370/.ssh)。 -
这样 SSH 找不到私钥文件,就会报错:
Could not create directory '/c/Users/\325\324\261\370/.ssh' Permission denied (publickey). -
解决的思路:
-
方法 1(首推):更换 SSH 私钥识别目录(自定义位置)
-
方法 2:新建英文用户名的系统账户
-
方法 3:改当前用户名为英文(代价大)
-
方法 4:用 Windows 自带 OpenSSH + PowerShell 代替 Git Bash 的 SSH
-
📌 方案 1(推荐)——更换 SSH 识别目录
原理
SSH 默认会在 $HOME/.ssh 查找私钥,我们可以通过设置环境变量,让 $HOME 指向一个英文路径,从而绕过中文用户名路径的问题。
步骤
1. 在 D 盘或 C 盘新建一个英文文件夹
例如:
D:\git-keys
2. 把 .ssh 文件夹移动过去
如果你已有 SSH key:
C:\Users\中文用户名\.ssh
复制到:
D:\git-keys\.ssh
如果没有,直接在新位置生成:
ssh-keygen -t rsa -b 4096 -C "你的邮箱@example.com" -f /d/git-keys/.ssh/id_rsa
3. 修改 Git Bash 环境变量(临时生效)
在 Git Bash 里:
export HOME=/d/git-keys
然后测试:
ssh-add ~/.ssh/id_rsa
ssh -T git@gitcode.com
如果能成功认证,就说明 SSH 已经从新位置读取密钥了。
4. 永久生效(推荐)
方法 A:Git Bash 配置
-
找到 Git Bash 安装目录:
例如:C:\Program Files\Git\etc\profile -
在文件开头加:
export HOME="/d/git-keys"
方法 B:Windows 环境变量
-
打开
系统属性 → 高级 → 环境变量 -
新建或修改用户变量:
HOME = /d/git-keys -
重新打开 Git Bash,执行:
echo $HOME确认是
/d/git-keys
5. 验证
ssh-add -l
ssh -T git@gitcode.com
确认能正常识别 SSH 私钥并完成连接。
方案 2——创建英文用户名的新账户
-
新建 Windows 账号,用户名全英文(例如
devuser)。 -
把代码、Git 配置、
.ssh都放到这个账户下。 -
切换账号工作。
-
优点:系统级彻底解决编码问题。
-
缺点:需要切换账号,麻烦。
方案 3——改现有用户名为英文(高风险)
-
通过控制面板 → 用户账户 → 更改用户名,把中文改成英文。
-
但 用户文件夹路径不会变(除非修改注册表并迁移数据),容易导致系统应用出错。
-
不推荐,风险大。
方案 4——使用 Windows 自带 OpenSSH(绕过 Git Bash)
-
Windows 10/11 自带 OpenSSH,可在 PowerShell 直接使用 SSH。
-
配置方法:
-
把 SSH key 放到:
C:\Users\中文用户名\.ssh -
打开 PowerShell:
ssh-add $env:USERPROFILE\.ssh\id_rsa ssh -T git@gitcode.com
-
-
优点:不用改 HOME。
-
缺点:仅限 PowerShell / CMD,不适合纯 Git Bash 环境。
📌 建议
如果你是个人电脑,方案 1(更换 SSH 识别目录) 是最稳妥的,不会影响系统、账号、软件。
只要配置好 HOME 或 SSH 环境变量,就可以长期稳定使用。


1843

被折叠的 条评论
为什么被折叠?



