详情

首页手游攻略 Windows下Gitee与GitHub共用SSH密钥的配置指南实用指南

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

佚名 2026-08-22 14:00:02

平时做技术实践时,很多问题不是概念不会,而是细节没串起来。拿“Windows下Gitee与GitHub共用SSH密钥的配置指南”来说,它看着像小点,放到项目里常会牵出环境、配置、兼容性和维护成本。下面按实际采用顺序,把思路、关键写法和容易踩坑的地方讲清楚,便于大家直接对照操作。

目录
  • 写在前面
  • 适用场景与前置条件
    • 适用人群
    • 前置条件
  • 第一步:确认现有 SSH 密钥
    • 第二步:将公钥添加到 GitHub
      • 2.1 复制公钥内容
      • 2.2 在 GitHub 中添加公钥
    • 第三步:设置 SSH 客户端(核心步骤)
      • 3.1 新建或编辑config文件
      • 3.2 写入以下设置
      • 3.3 设置字段说明
    • 第四步:验证连通性
      • 首次连接 GitHub 时的指纹确认
      • 成功标志
    • 第五步(可选):HTTPS 自动转 SSH
      • 关于“邮箱相同,用户名不同”的说明
        • 平台如何匹配提交记录?
        • 常用场景示例
        • 查看当前设置
      • 常用问题与解决方案
        • 最后文件结构一览
          • 总结

            写在前面

            在这个场景下,在日常开发里,很多开发者同时采用 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 [email protected]

            # 测试 GitHub(首次连接会提示确认指纹)
            ssh -T [email protected]

            首次连接 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."[email protected]:".insteadOf "https://github.com/"
            git config --global url."[email protected]:".insteadOf "https://gitee.com/"

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

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

            平台如何匹配提交记录?

            答案是:借助邮箱地址,而不是用户名。

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

            常用场景示例

            • 邮箱[email protected](两个平台注册邮箱一致)
            • 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 # 输出:[email protected]

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

            git config --global user.email "[email protected]"

            常用问题与解决方案

            问题现象可能原因解决方案
            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密钥的资料请关注脚本之家其它相关文章!

            您可能感兴趣的文章:

            • shell脚本一键同时推送代码至github和gitee的解决办法
            • docker安装Jenkins设置Gitee SSH密钥踩坑解决
            • Windows 系统下 GitHub SSH 全局设置完全指南(最新建议)
            • 解决GitHub SSH连接超时问题及分析
            • Ubuntu系统SSH免密连接Github设置全过程

            相关资讯
            点击查看更多
            游戏推荐
            推荐专题
            热门阅读
            推荐下载