- 1. 问题描述
- 2. `ssh-keygen`执行出错
- 3. 出错原因分析
- 4. 简单尝试
使用的操作系统:Windows 10 企业版 LSTC 1809(版本 10.0.17763.2928)
在安装操作系统时候,使用中文名创建了用户,在完成创建后,发现C:Users路径下显示的当前用户的家路径是直接用中文命名的。
当家路径中包含中文时,很多程序的安装和执行就会出现一些问题。
执行的具体代码如下所示:
Microsoft Windows [版本 10.0.17763.2928] (c) 2018 Microsoft Corporation。保留所有权利。 C:Users系统中文用户名>ssh-keygen -t ed25519 -C "邮箱地址" Generating public/private ed25519 key pair. Enter file in which to save the key (C:Users鐜嬫湞闃?.ssh/id_ed25519): Could not create directory 'C:\Users\347216213346234235351230263/.ssh': Invalid argument Enter passphrase (empty for no passphrase):
以上内容中的“系统中文用户名”代指当时输入的中文路径名,邮箱地址也是需要实际的地址。
可以看到,对路径的识别出现类问题,识别成“鐜嬫湞闃?”,最后的部分连带了一个""符号也被识别错误。
在保存路径中,如果识别正确的话,直接按Enter按键就能往下执行。当我按了“Enter”按钮后,路径识别成了“C:Users\347216213346234235351230263/.ssh”。导致创建文件失败。
在Windows系统的简体中文版本中,使用的中文的编码是GB2312的。
但是有的程序中使用的编码是UTF-8等不同的编码。
识别出现问题是这些编码的识别并不兼容,在使用的时候也没有进行转换。
假设存在一种可能,cmd能够接收输入的信息,在执行过程中根据输入的信息执行,而输出的内容错误。这是其中一种可能,不一定成立,尝试一下。
C:Users>ssh-keygen -t ed25519 -C "邮箱地址" Generating public/private ed25519 key pair. Enter file in which to save the key (C:Users鐜嬫湞闃?.ssh/id_ed25519): C:Users系统中文用户名.ssh/id_ed255191999 Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in C:Users鐜嬫湞闃砛.ssh/id_ed25519. Your public key has been saved in C:Users鐜嬫湞闃砛.ssh/id_ed25519.pub. The key fingerprint is: SHA256:生成的内容 邮箱地址 The key's randomart image is: +--[ED25519 256]--+ |o+ o. | |+ + . .o . | |+B + oo.o . | |++* .o.+ o | |...= + S . | |+.o.o. = . | |+.o.o. = . | |ooE.+o | |*+ oo | +----[SHA256]-----+
这样执行发现,在家路径下生成类对应的文件。
看来这个只是它输出的内容显示错误。
尝试git的相关命令也能执行成功。



