Windows怎么生成SSH密钥_Windows如何用ssh-keygen生成公私钥对用于免密登录
如果您希望在Windows系统中通过SSH实现免密码登录远程服务器,则需要先生成一对公私钥。以下是使用ssh-keygen工具生成密钥对的具体步骤:
一、确认OpenSSH客户端已启用
Windows 10 1809及以后版本、Windows 11默认内置OpenSSH客户端,但可能未启用。需确保OpenSSH客户端功能处于启用状态,否则无法运行ssh-keygen命令。
1、按下Win + R,输入optionalfeatures.exe,回车打开“Windows功能”窗口。
2、在列表中找到OpenSSH 客户端,勾选该选项。
3、点击“确定”,等待系统应用更改并提示重启(如需)。
二、使用PowerShell或CMD运行ssh-keygen
ssh-keygen是OpenSSH提供的密钥生成工具,支持在PowerShell或命令提示符中调用,用于创建RSA、ED25519等类型的密钥对。
1、以普通用户身份打开Windows PowerShell(无需管理员权限)。
2、输入命令:ssh-keygen -t ed25519 -C "your_email@example.com",其中-t ed25519指定密钥类型为更安全的ED25519算法,-C后跟可选的注释(通常为邮箱)。
3、按回车确认密钥保存路径,默认为C:\Users\用户名\.ssh\id_ed25519。
4、输入并确认一个强密码短语(passphrase),该短语用于加密本地私钥;若留空则不设密码,但安全性降低。
三、手动指定密钥类型与保存路径
当默认路径不可写或需多组密钥时,可通过参数显式指定文件名和位置,避免覆盖已有密钥。
1、执行命令:ssh-keygen -t rsa -b 4096 -f C:\keys\myserver_key -C "work-server",其中-b 4096指定RSA密钥长度,-f指定完整输出路径。
MidReal AI
MidReal AI是一款革命性的AI小说生成工具,同时也是一个文本互动冒险游戏平台。
下载
2、确认路径所在目录C:\keys\已存在,且当前用户具有写入权限。
3、生成完成后,检查目录下是否出现两个文件:myserver_key(私钥)和myserver_key.pub(公钥)。
四、使用Git Bash作为替代终端环境
若系统未启用OpenSSH客户端,或PowerShell中ssh-keygen不可用,可借助Git for Windows安装的Git Bash环境执行相同操作。
1、下载并安装Git for Windows(含Git Bash),安装时勾选“Add Git to PATH”选项。
2、启动Git Bash,输入which ssh-keygen确认工具路径,应返回类似/usr/bin/ssh-keygen的结果。
3、运行ssh-keygen -t ed25519 -f ~/.ssh/id_gitlab -C "gitlab-access",将密钥存入Git Bash的用户主目录.ssh子目录中。
五、验证密钥文件权限与格式
Windows上生成的私钥文件若权限过宽(如被继承了组或全局读取权限),OpenSSH客户端在后续使用时会拒绝加载,必须修正权限设置。
1、在PowerShell中执行:icacls "$env:USERPROFILE\.ssh\id_ed25519" /inheritance:r /grant:r "$env:USERNAME:(R)",移除继承权限并仅授予当前用户读取权。
2、用记事本打开id_ed25519.pub,确认首部为ssh-ed25519或ssh-rsa,末尾包含邮箱注释,整行无换行或空格截断。
3、执行ssh-keygen -l -f "$env:USERPROFILE\.ssh\id_ed25519.pub"验证公钥指纹是否可正常解析。















