You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows 11 OpenSSH生成SSH密钥路径异常问题求助

Windows 11 OpenSSH生成SSH密钥路径异常问题求助

嘿,这个问题我之前也踩过坑,其实是对ssh-keygen的路径提示逻辑有点误解啦~

问题原因分析

你看到的Enter file in which to save the key (C:\Users\XXX/.ssh/id_rsa):这个提示里,括号里的路径只是官方推荐的默认保存路径,但它的实际行为是:

  • 如果你直接按回车不输入内容,才会自动使用这个默认路径,把密钥存在用户目录下的.ssh文件夹里;
  • 但如果你输入了test、test2这种不带完整路径的纯文件名,ssh-keygen就会把文件直接保存在当前PowerShell所在的工作目录里——也就是你第一个测试里的C:\Windows\system32,第二个测试里的C:\Users\XXX。

你自己发现的“生成路径就是当前所在文件夹”的规律,完全符合工具的设计逻辑,只是你误以为输入文件名会自动关联到默认的.ssh路径而已。

实用解决办法

这里给你几个靠谱的解决方式:

  • 直接用默认路径(最省心):执行ssh-keygen后,当提示输入保存路径时,什么都不用输直接按回车,密钥就会自动存到C:\Users\XXX\.ssh\id_rsa(对应公钥id_rsa.pub);
  • 指定完整路径保存自定义文件名:如果想自定义密钥文件名,同时存在.ssh文件夹里,输入完整路径就行,比如:
    Enter file in which to save the key (C:\Users\XXX/.ssh/id_rsa): C:\Users\XXX\.ssh\my_custom_key
    
    这样不管你在哪个目录运行命令,文件都会乖乖存到.ssh文件夹里;
  • 先切换到.ssh目录再操作:先执行命令切换到目标文件夹:
    cd C:\Users\XXX\.ssh
    
    之后再运行ssh-keygen,这时候输入自定义文件名(比如test3),文件就会直接保存在.ssh文件夹里,不用再输完整路径了。

对照你的测试案例验证

再看你自己的测试过程:

PS C:\Windows\system32> ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (C:\Users\XXX/.ssh/id_rsa): test
...
Your identification has been saved in test

因为当前工作目录是system32,输入test后文件就存在了这里;而第二个测试:

PS C:\Users\XXX> ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (C:\Users\XXX/.ssh/id_rsa): test2
...
Your identification has been saved in test2

当前目录是用户主目录,所以test2就存在了这里,完全符合上面的逻辑~

备注:内容来源于stack exchange,提问作者Nogi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.20 11:39:43