Windows下Gitee与GitHub共用SSH密钥的配置指南

 更新时间:2026年08月05日 08:48:30   作者:YahirQ  
在日常开发中,很多开发者同时使用 Gitee(码云)和 GitHub 两个代码托管平台,如果两个平台注册的是同一个邮箱,那么完全可以共用同一套 SSH 密钥,本文将基于 Windows 系统,详细讲解如何将已配置好 Gitee 的 SSH 密钥,无缝复用到 GitHub,需要的朋友可以参考下

写在前面

在日常开发中,很多开发者同时使用 Gitee(码云)和 GitHub 两个代码托管平台。如果两个平台注册的是同一个邮箱,那么完全可以共用同一套 SSH 密钥,省去重复生成、管理多套密钥的麻烦。

本文将基于 Windows 系统,详细讲解如何将已配置好 Gitee 的 SSH 密钥,无缝复用到 GitHub,实现 “一把密钥走天下” 的流畅体验。

适用场景与前置条件

适用人群

  • 已在 Windows 上配置好 Gitee 的 SSH 连接
  • 现需配置 GitHub 的 SSH 连接
  • 两个平台注册使用同一个邮箱地址

前置条件

  • Windows 10 / 11 操作系统
  • 已安装 Git for Windows
  • 已拥有 Gitee 和 GitHub 账号(邮箱一致)
  • ~/.ssh 目录下已有密钥文件(如 id_rsa / id_rsa.pub

第一步:确认现有 SSH 密钥

打开 PowerShell(以普通用户身份即可),查看当前已有的 SSH 密钥:

ls ~/.ssh

正常情况下,你至少应该看到以下文件:

  • id_rsa —— 私钥(绝密,切勿泄露)
  • id_rsa.pub —— 公钥(可公开,需上传到平台)
  • known_hosts —— 已信任的服务器指纹记录

如果你之前配置过 Gitee,说明这套密钥已经经过验证,可以直接复用。

第二步:将公钥添加到 GitHub

2.1 复制公钥内容

在 PowerShell 中,使用以下命令将公钥复制到剪贴板:

type ~/.ssh/id_rsa.pub | clip

常见坑:PowerShell 不支持 Linux/CMD 风格的 < 重定向符,所以不要使用 clip < ~/.ssh/id_rsa.pub。如果 clip 命令无效,可直接用记事本打开 id_rsa.pub 手动复制。

2.2 在 GitHub 中添加公钥

  1. 登录 GitHub,点击右上角头像 → Settings
  2. 左侧菜单选择 SSH and GPG keys
  3. 点击 New SSH key
  4. Title 栏填写一个便于识别的名称(如 My-Windows-Laptop
  5. Key 栏粘贴刚才复制的公钥内容(以 ssh-rsa 开头)
  6. 点击 Add SSH key 保存

第三步:配置 SSH 客户端(核心步骤)

这是整个配置的关键环节。通过编辑 ~/.ssh/config 文件,我们可以为不同平台指定认证方式,并为 GitHub 强制使用 443 端口以穿透防火墙。

3.1 创建或编辑config文件

在文件资源管理器地址栏输入 %USERPROFILE%\.ssh 并回车,进入该目录。
在此目录下新建一个名为 config 的文本文件(注意没有扩展名)。

3.2 写入以下配置

用记事本打开 config 文件,添加以下内容:

# Gitee 配置(保留原有配置,确保指向正确的私钥)
Host gitee.com
    HostName gitee.com
    User git
    Port 22
    IdentityFile ~/.ssh/id_rsa
    PreferredAuthentications publickey

# GitHub 配置(新增,使用 443 端口绕过防火墙)
Host github.com
    HostName ssh.github.com   # GitHub 的 SSH 专用域名
    User git
    Port 443                   # 使用 HTTPS 端口,避免 22 端口被屏蔽
    IdentityFile ~/.ssh/id_rsa # 指向与 Gitee 相同的私钥!
    PreferredAuthentications publickey

3.3 配置字段说明

字段含义
Host匹配 Git 命令中的主机名
HostName实际连接的目标主机
PortSSH 连接端口(GitHub 推荐 443)
IdentityFile指定使用的私钥文件路径
PreferredAuthentications优先使用的认证方式

关键点:GitHub 和 Gitee 的 IdentityFile 指向同一个私钥文件,这就是“共用密钥”的本质。

第四步:验证连通性

在 PowerShell 中分别测试两个平台:

# 测试 Gitee(应该直接成功)
ssh -T git@gitee.com

# 测试 GitHub(首次连接会提示确认指纹)
ssh -T git@github.com

首次连接 GitHub 时的指纹确认

由于你配置了 Port 443HostName ssh.github.com,SSH 会认为这是一个新的主机,弹出以下提示:

The authenticity of host '[ssh.github.com]:443 ([20.205.243.160]:443)' can't be established.
ED25519 key fingerprint is SHA256:+DiY3wvvV6TuJJhbpZisF/zLDA0zPMSvHdkr4UvCOqU.
Are you sure you want to continue connecting (yes/no/[fingerprint])?

直接输入 yes 并回车。这是 GitHub 官方的 ED25519 指纹,安全可信。

成功标志

如果看到以下输出,说明配置成功:

Hi <你的GitHub用户名>! You've successfully authenticated, but GitHub does not provide shell access.

对于 Gitee,成功信息类似:

Hi <你的Gitee用户名>! You've successfully authenticated, but GITEE.COM does not provide shell access.

第五步(可选):HTTPS 自动转 SSH

为了方便日常使用,你可以配置 Git 全局 URL 重写。这样即使从网页复制了 https:// 开头的仓库地址,Git 也会自动使用 SSH 协议。

执行以下两条命令:

git config --global url."git@github.com:".insteadOf "https://github.com/"
git config --global url."git@gitee.com:".insteadOf "https://gitee.com/"

设置后,以下操作会自动转换:

  • git clone https://github.com/user/repo.git → 实际使用 git@github.com:user/repo.git
  • git clone https://gitee.com/user/repo.git → 实际使用 git@gitee.com:user/repo.git

关于“邮箱相同,用户名不同”的说明

平台如何匹配提交记录?

答案是:通过邮箱地址,而不是用户名。

字段作用是否用于身份验证
user.email平台通过它关联账号、统计贡献、显示头像关键字段
user.name仅作为提交记录的显示标签❌ 不参与验证

常见场景示例

  • 邮箱your_email@example.com(两个平台注册邮箱一致)
  • GitHub 用户名your_github_username
  • Gitee 用户名your_gitee_username
  • Git 全局 user.nameyour_display_name

推送时:

  • 向 GitHub 推送 → 邮箱匹配 → 贡献计入 your_github_username
  • 向 Gitee 推送 → 邮箱匹配 → 贡献计入 your_gitee_username

用户名不同完全不影响功能,请放心。

查看当前配置

git config --global user.name   # 输出:your_display_name
git config --global user.email  # 输出:your_email@example.com

如果邮箱与平台注册邮箱不一致,需修改:

git config --global user.email "your_correct_email@example.com"

常见问题与解决方案

问题现象可能原因解决方案
Permission denied (publickey)公钥未添加到平台,或 IdentityFile 路径错误检查公钥是否完整复制;检查 config 中的路径
Connection timed out22 端口被防火墙屏蔽确认 GitHub 配置中已设置 Port 443HostName ssh.github.com
PowerShell 中 clip < file 报错PowerShell 不支持 < 重定向符改用 `type ~/.ssh/id_rsa.pub
no such identity私钥路径包含反斜杠或中文字符使用正斜杠 /,路径放于英文目录下
每次 push 还要输密码私钥设置了密码短语(passphrase)使用 ssh-agent 缓存密码
首次连接 GitHub 提示指纹确认通过 443 端口首次访问,主机记录未存入 known_hosts输入 yes 确认,此为正常安全机制

最终文件结构一览

配置完成后,你的 ~/.ssh 目录应包含:

~/.ssh/
├── id_rsa          # 私钥(共用,Gitee + GitHub)
├── id_rsa.pub      # 公钥(已分别上传至 Gitee 和 GitHub)
├── known_hosts     # 服务器指纹(含 gitee.com 和 ssh.github.com:443)
└── config          # SSH 客户端配置(双平台配置)

总结

通过以上步骤,你已完成以下全部配置:

  • ✅ SSH 密钥在 Gitee 和 GitHub 之间共用
  • ~/.ssh/config 为两个平台分别指定了正确的认证参数
  • ✅ GitHub 使用 443 端口,有效规避防火墙限制
  • ✅ 已通过 ssh -T 验证双平台连通性
  • git config 全局 URL 重写,HTTPS 自动转 SSH
  • ✅ 全局 user.email 与平台注册邮箱一致,贡献记录正常归位

现在,你可以在 Windows 上愉快地使用 Git 操作 Gitee 和 GitHub 的仓库了,无需再为协议、端口和密钥匹配烦恼。

以上就是Windows下Gitee与GitHub共用SSH密钥的配置指南的详细内容,更多关于Gitee与GitHub共用SSH密钥的资料请关注脚本之家其它相关文章!

相关文章

  • 使用git checkout到历史某个版本

    使用git checkout到历史某个版本

    这篇文章主要介绍了使用git checkout到历史某个版本,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-09-09
  • HTML5 拖拽复制功能的实现

    HTML5 拖拽复制功能的实现

    这篇文章主要介绍了HTML5 拖拽复制功能的实现的相关资料,需要的朋友可以参考下
    2016-09-09
  • Git命令如何添加到远程仓库

    Git命令如何添加到远程仓库

    本文介绍了Git的基本概念和操作,包括初始化仓库、设置个人信息、工作区与暂存区及本地仓库的状态转换、创建和切换分支、合并分支、撤销操作、回滚版本、推送代码到远程仓库、从远程仓库拉取代码等操作
    2026-04-04
  • vscode使用remote-ssh免密连接服务器

    vscode使用remote-ssh免密连接服务器

    本文主要介绍了vscode使用remote-ssh免密连接服务器
    2024-03-03
  • 解决Git推送错误non-fast-forward的方法

    解决Git推送错误non-fast-forward的方法

    这篇文章介绍了解决Git推送错误non-fast-forward的方法,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-06-06
  • 微信 小程序开发环境搭建详细介绍

    微信 小程序开发环境搭建详细介绍

    这篇文章主要介绍了微信 小程序开发环境搭建详细介绍的相关资料,需要的朋友可以参考下
    2016-09-09
  • windows开发记事本程序纪实(一)界面篇

    windows开发记事本程序纪实(一)界面篇

    这将是一个系列博文,后面会继续补充逻辑功能的开发的步骤。本节主要实现记事本的主界面设计,包括主界面窗口的构建、菜单的加入。虽然都是一些基本的操作,但是还是想将这些基本步骤完整地记录下来,以便后续验证。
    2014-08-08
  • 浅析hosts 文件的作用及修改 hosts 文件的方法

    浅析hosts 文件的作用及修改 hosts 文件的方法

    hosts是一个没有扩展名的系统文件,其基本作用就是将一些常用的网址域名与其对应的 IP 地址建立一个关联“ 数据库 ”。接下来通过本文给大家介绍hosts 文件的作用及修改 hosts 文件的方法,需要的朋友参考下吧
    2018-01-01
  • git的远程分支的作用和本地分支有什么区别

    git的远程分支的作用和本地分支有什么区别

    这篇文章主要介绍了git的远程分支的作用和本地的有什么区别,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-10-10
  • MacOS系统下Git的详细安装步骤与基础设置指南

    MacOS系统下Git的详细安装步骤与基础设置指南

    本文介绍了在MacOS上安装Git的的不同方法,包括通过Homebrew安装、通过XcodeCommandLineTools安装和手动下载安装包安装,此外,还还介绍了配置用户名和邮箱、配置SSH密钥、配置差异工具和Git代理等以及解决安装过程中可能出现的常见问题,需要的朋友可以参考下
    2026-04-04

最新评论