Skip to content

告别密码输入:SSH 密钥配置 GitHub_Gitee_GitLab

本文详细介绍如何配置 SSH 密钥,实现 GitHub、Gitee、GitLab 等平台的免密码 Git 操作。

📝 说明:本文所有命令均针对 Windows PowerShell 环境优化,确保在 Windows 系统下的最佳使用体验。

🔑 什么是 SSH 密钥?

SSH 密钥是一种基于公钥加密的认证方式,相比传统的 HTTPS 认证,它具有以下优势:

  • 安全性更高:使用非对称加密,无需在网络上传输密码
  • 使用更便捷:一次配置,永久免密
  • 支持更多场景:不仅限于 Git,还支持服务器登录等多种用途

🛠️ 生成 SSH 密钥

检查现有密钥

首先检查是否已经存在 SSH 密钥:

shell
# 检查默认的 SSH 密钥目录
ls $env:USERPROFILE\.ssh

如果看到 id_rsaid_rsa.pub(或其他算法的密钥文件),说明已有密钥,可以直接跳到配置步骤。

生成新密钥

推荐使用 Ed25519 算法,它更安全、性能更好:

shell
# 生成 Ed25519 密钥(推荐)
ssh-keygen -t ed25519 -C "自定义描述"

如果系统不支持 Ed25519,可以使用传统的 RSA:

shell
# 生成 RSA 4096 位密钥
ssh-keygen -t rsa -b 4096 -C "自定义描述"

密钥生成过程中的选项

  1. 保存位置:默认为 ~/.ssh/id_ed25519,建议保持默认
  2. 密码保护:可选设置密码,或直接回车跳过密码,建议设置以增加安全性
    shell
    Enter passphrase (empty for no passphrase): [输入密码]
    Enter same passphrase again: [再次输入密码]

查看生成的密钥

shell
# 查看公钥内容
cat $env:USERPROFILE\.ssh\id_ed25519.pub

🔄 多平台配置策略

单一密钥多平台使用

最简单的方式是使用同一个公钥配置所有平台:

  1. 复制同一个公钥 ~/.ssh/id_ed25519.pub
  2. 在 GitHub、Gitee、GitLab 上都添加这个公钥
  3. 享受统一的使用体验

多密钥配置

如果出于安全考虑需要为不同平台使用不同密钥:

shell
# 为不同平台生成不同密钥
ssh-keygen -t ed25519 -C "自定义描述" -f "$env:USERPROFILE\.ssh\id_ed25519_gitee"
ssh-keygen -t ed25519 -C "自定义描述" -f "$env:USERPROFILE\.ssh\id_ed25519_company_gitlab"

配置 $env:USERPROFILE\.ssh\config 文件:

警告

⚠️ 重要提醒:配置文件名为 config没有后缀

config 而不是 config.txt ,确保文件名完全正确。

shell
# 创建或编辑 SSH 配置文件
notepad $env:USERPROFILE\.ssh\config

# 或者使用 VS Code
code $env:USERPROFILE\.ssh\config

添加以下内容:

text
# GitHub
Host github.com
    HostName github.com
    User git
    IdentityFile ~/.ssh/id_ed25519

# Gitee
Host gitee.com
    HostName gitee.com
    User git
    IdentityFile ~/.ssh/id_ed25519_gitee

# GitLab私服
Host GitLab私服地址
    HostName GitLab私服地址
    User git
    IdentityFile ~/.ssh/id_ed25519_company_gitlab

🌐 配置各平台

GitHub 配置

  1. 登录 GitHub,进入 SettingsSSH and GPG keys

  2. 点击 "New SSH key"

  3. 填写信息

    • Title:给密钥起个名字(如 "My MacBook")
    • Key:粘贴公钥内容
  4. 测试连接

    shell
    ssh -T git@github.com

    成功会显示:Hi YourName! You've successfully authenticated...

Gitee 配置

  1. 登录 Gitee,进入 设置SSH公钥

  2. 填写信息

    • 标题:密钥名称
    • 公钥:粘贴公钥内容
  3. 测试连接

    shell
    ssh -T git@gitee.com

GitLab私服 配置

  1. 登录 GitLab私服,进入 PreferencesSSH Keys

  2. 填写信息

    • Title:密钥名称
    • Key:粘贴公钥内容
  3. 测试连接

    shell
    ssh -T git@GitLab私服地址

🔧 使用 SSH 协议操作 Git

克隆仓库

shell
# 使用 SSH 协议克隆
git clone git@github.com:username/repository.git

已有仓库切换到 SSH

如果已经使用 HTTPS 克隆的仓库,可以切换到 SSH:

shell
# 查看当前远程地址
git remote -v

# 修改为 SSH 地址
git remote set-url origin git@github.com:username/repository.git

# 验证修改
git remote -v

🛡️ 安全最佳实践

1. 密钥保护

shell
# 为私钥设置密码(如果生成时没设置)
ssh-keygen -p -f "$env:USERPROFILE\.ssh\id_ed25519"

2. 定期轮换

建议每年更换一次 SSH 密钥,特别是更换设备或怀疑密钥泄露时。

3. 备份管理

shell
# 备份密钥到安全位置
$backupPath = "$env:USERPROFILE\ssh_backup_$(Get-Date -Format 'yyyyMMdd')"
Copy-Item -Path "$env:USERPROFILE\.ssh" -Destination $backupPath -Recurse -Force
Write-Host "SSH 密钥已备份到: $backupPath"

📝 总结

配置 SSH 密钥是提升 Git 使用体验的重要步骤:

  1. 生成安全的 SSH 密钥(推荐 Ed25519)
  2. 在各平台添加公钥(GitHub、Gitee、GitLab)
  3. 测试连接确保配置正确
  4. 使用 SSH 协议进行 Git 操作

一次配置,永久受益!从此告别每次 Git 操作都要输入密码的烦恼,享受流畅的开发体验。


相关阅读

本站总访问量 --