win11如何生成和管理SSH密钥_win11和管理SSH密钥的几种常见方式

梦丽君_5365

梦丽君_5365

2026-04-07

558人浏览

原创

Windows下生成SSH密钥有三种主流方法:一是用PowerShell调用内置ssh-keygen生成ed25519密钥;二是用PuTTYgen图形化工具生成并导出OpenSSH格式密钥;三是通过Git Bash生成并配合ssh-agent自动加载。

win11如何生成和管理ssh密钥_win11和管理ssh密钥的几种常见方式

一、使用Windows终端内置ssh-keygen命令生成密钥

Windows 11 自带 OpenSSH 客户端,可通过 PowerShell 或 Windows Terminal 直接调用 ssh-keygen 工具生成密钥对,该方法无需安装第三方软件,操作简洁且与系统深度集成。

1、按下 Win + R,输入 powershell 并回车,以普通用户身份打开 PowerShell。

2、执行命令检查 OpenSSH 客户端是否已启用:Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH.Client*',若 State 显示为 Installed,则可继续;否则需以管理员身份运行:Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0。

3、运行密钥生成命令:ssh-keygen -t ed25519 -C "your_email@example.com",其中 ed25519 为推荐算法,安全性高且性能优。

4、按提示输入保存路径(直接回车采用默认路径 C:\Users\用户名\.ssh\id_ed25519)。

5、连续两次回车跳过密码短语设置(如需增强私钥保护,可在此处输入并确认口令)。

6、验证生成结果:进入 C:\Users\用户名\.ssh\ 目录,确认存在 id_ed25519(私钥)和 id_ed25519.pub(公钥)两个文件。

二、使用PuTTYgen图形化工具生成密钥

PuTTYgen 提供可视化界面,适合不熟悉命令行的用户,支持多种密钥类型与位长配置,并可直接导出 OpenSSH 兼容格式,便于后续在 VS Code 或 Git 中复用。

1、从 PuTTY 官网下载并安装 PuTTY 安装包(含 PuTTYgen 组件)。

2、在开始菜单或搜索栏中输入 PuTTYgen 并启动程序。

3、在参数区域选择密钥类型:Ed25519(推荐)或 RSA;若选 RSA,将“Number of bits”设为 4096。

4、点击 Generate 按钮,在空白区域随机移动鼠标以生成熵值。

5、生成完成后,在“Key comment”栏填写邮箱或标识(如 win11-laptop@github.com)。

6、点击 Save private key,保存为 ppk 格式(仅供 PuTTY 系列工具使用);再点击 Conversions → Export OpenSSH key,导出为无密码的 id_rsa 或 id_ed25519 格式文件。

7、复制顶部文本框中显示的公钥内容(以 ssh-ed25519 或 ssh-rsa 开头的整行),用于上传至 GitHub、Ubuntu 等服务端。

三、通过Git Bash生成并自动加载密钥

Git for Windows 自带 Git Bash 环境及完整 OpenSSH 工具链,生成密钥后可立即配合 git 命令使用,并通过 ssh-agent 实现会话级密钥托管,避免重复输入口令。

1、右键桌面或任意文件夹空白处,选择 Git Bash Here 启动终端。

2、执行命令:ssh-keygen -t rsa -b 4096 -C "your_email@example.com",接受默认路径并按需设置密码短语。

3、启动 SSH 代理:eval "$(ssh-agent -s)",确保代理进程在当前会话中运行。

4、将私钥添加至代理:ssh-add ~/.ssh/id_rsa(若使用自定义路径,请替换为对应路径)。

5、验证加载状态:ssh-add -l,应显示密钥指纹及文件路径。

酷兔AI论文
酷兔AI论文

一款AI论文写作工具,主要用于专业原创高质量、低查重,免费论文大纲,在线AI生成原创论文,AI辅助生成论文的神器!,适合需要提升相关任务效率的用户。

下载

6、测试连接 GitHub:ssh -T git@github.com,成功时返回类似 Hi username! You've successfully authenticated... 的提示。

四、集中管理多组密钥并绑定不同主机

当需同时连接 GitHub、GitLab、私有服务器等多个目标时,单一密钥易引发权限混淆或安全风险。通过配置 ~/.ssh/config 文件,可为每组密钥指定 Host 别名、用户、私钥路径及端口,实现精准路由与免手动指定参数。

1、在 C:\Users\用户名\.ssh\ 目录下新建纯文本文件,命名为 config(无扩展名)。

2、用记事本或 VS Code 打开该文件,按如下格式逐段写入主机配置:

Host github.com

HostName github.com

User git

IdentityFile C:\Users\用户名\.ssh\id_ed25519_github

Host myserver

HostName 192.168.1.100

User ubuntu

IdentityFile C:\Users\用户名\.ssh\id_rsa_server

3、保存文件后,确保其编码为 UTF-8 无 BOM,且文件权限未被系统修改(Windows 下通常无需额外 chmod)。

4、在任意终端中执行 ssh -T git@github.com 或 ssh ubuntu@myserver,系统将自动匹配 config 中定义的私钥路径。

五、安全加固与权限校验关键步骤

Windows 对 SSH 密钥文件权限控制较宽松,但远程服务端(如 Ubuntu、GitHub)严格校验 .ssh 目录及密钥文件的访问权限。若忽略此步,将导致 Permission denied (publickey) 错误,即使密钥本身正确也无法认证通过。

1、在 PowerShell 中进入用户 .ssh 目录:cd ~/.ssh。

2、重置私钥权限(仅限当前用户读取):icacls id_ed25519 /reset /inheritance:r /grant:r "$env:USERNAME:(R)"。

3、重置公钥权限(允许读取):icacls id_ed25519.pub /reset /inheritance:r /grant:r "$env:USERNAME:(R)"。

4、重置 .ssh 目录权限:icacls .ssh /reset /inheritance:r /grant:r "$env:USERNAME:(OI)(CI)(RX)"。

5、验证权限是否生效:运行 icacls id_ed25519,输出中应仅包含当前用户名的 R(读取)权限,无 F(完全控制)或其它用户条目。

相关专题

更多
github中文官网入口 github中文版官网网页进入
github中文官网入口 github中文版官网网页进入

github中文官网入口https://docs.github.com/zh/get-started,GitHub 是一种基于云的平台,可在其中存储、共享并与他人一起编写代码。 通过将代码存储在GitHub 上的“存储库”中,你可以: “展示或共享”你的工作。 持续“跟踪和管理”对代码的更改。

2026.01.21

8645

27

GitHub官网入口版本汇总
GitHub官网入口版本汇总

本专题整合了GitHub入口版本地址汇总,阅读专题下面的文章了解更多详细内容。

2026.04.02

918

19

自建git服务器
自建git服务器

git服务器是目前流行的分布式版本控制系统之一,可以让多人协同开发同一个项目。本专题为大家提供自建git服务器相关的各种文章、以及下载和课程。

2023.07.05

6799

9

git和svn的区别
git和svn的区别

git和svn的区别:1、定义不同;2、模型类型不同;3、存储单元不同;4、是否拥有全局版本号;5、内容完整性不同;6、版本库不同;7、克隆目录速度不同;8、分支不同。php中文网为大家带来了git和svn的相关知识、以及相关文章等内容。

2023.07.06

1920

6

git撤销提交的commit
git撤销提交的commit

Git是一个强大的版本控制系统,它提供了很多功能帮助开发人员有效地管理和控制代码的变更,本专题为大家提供git 撤销提交的commit相关的各种文章内容,供大家免费下载体验。

2023.07.24

1134

5

git提交错误怎么撤回
git提交错误怎么撤回

git提交错误撤回的方法:git reset head^:撤回最后一次提交,恢复到提交前状态。git revert head:创建新提交,内容与之前提交相反。git reset :使用提交的 sha-1 哈希撤回指定提交。交互式舞台区:标记要撤回的特定更改,然后提交,排除已撤回更改。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.04.09

4417

7

git怎么对比两个版本的文件内容
git怎么对比两个版本的文件内容

要对比两个版本的 git 文件,请使用 git diff 命令:git diff 比较工作树和暂存区之间的差异。git diff 比较两个提交或标签之间的差异。git diff 输出显示差异块,其中 + 表示添加的行,- 表示删除的行, 表示修改的行。可使用 gitkraken、meld、beyond compare 等可视化工具更直观地查看差异。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.04.09

4261

6

windows查看端口占用情况
windows查看端口占用情况

Windows端口可以认为是计算机与外界通讯交流的出入口。逻辑意义上的端口一般是指TCP/IP协议中的端口,端口号的范围从0到65535,比如用于浏览网页服务的80端口,用于FTP服务的21端口等等。怎么查看windows端口占用情况呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

2023.07.26

3319

3

查看端口占用情况windows
查看端口占用情况windows

端口占用是指与端口关联的软件占用端口而使得其他应用程序无法使用这些端口,端口占用问题是计算机系统编程领域的一个常见问题,端口占用的根本原因可能是操作系统的一些错误,服务器也可能会出现端口占用问题。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.27

2898

6

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.7万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 134.1万人学习