前言

在使用 Git 进行版本控制时,SSH 是一种安全、高效的认证方式。通过配置 SSH 密钥对(公钥和私钥),我们可以免去每次操作远程仓库时输入用户名和密码的麻烦。

本文将详细介绍如何生成 SSH 密钥对,并将其配置到 Git 和 GitHub(或其他平台)中。内容涵盖 macOSWindowsLinux 三大主流操作系统平台,帮助你完成完整的 SSH 密钥配置流程。


目录

  1. 一、检查是否已有 SSH 密钥
  2. 二、生成新的 SSH 密钥对
  3. 三、将公钥添加到 Git 平台(如 GitHub、Gitee 等)
  4. 四、测试 SSH 连接
  5. 五、配置多个 SSH 账户(可选)
  6. 六、常见问题与解决方法
  7. 七、结语

一、检查是否已有 SSH 密钥

在开始之前,先检查本地是否已经存在 SSH 密钥对:

ls -al ~/.ssh

如果你看到如下文件,则说明已经有密钥对了:

  • id_rsa(私钥)
  • id_rsa.pub(公钥)

你可以选择继续使用现有密钥,或跳过此步骤并生成新的密钥对。


二、生成新的 SSH 密钥对

无论使用哪种操作系统,我们都可以使用以下命令生成新的 SSH 密钥对:

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

macOS

  1. 打开 终端(Terminal)
  2. 输入上述命令生成密钥对。
  3. 按照提示选择保存路径(默认为 ~/.ssh/id_rsa)。
  4. 设置一个可选的密码来保护你的私钥。
添加到钥匙串(推荐)

为了更方便地管理你的 SSH 私钥,在 macOS 上你可以运行以下命令将私钥添加到钥匙串中:

ssh-add --apple-use-keychain ~/.ssh/id_rsa

这样可以避免每次使用时都要输入密码。


Windows

建议使用 Git BashPowerShell 来执行命令。

  1. 打开 Git BashPowerShell
  2. 输入以下命令生成密钥对:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
  1. 按照提示选择保存路径,默认为 C:\Users\<YourUsername>\.ssh\id_rsa
  2. 可选:设置密码以增强安全性。
使用 SSH Agent

为了让 Windows 记住你的 SSH 密钥,你需要启动 SSH Agent 并添加你的私钥:

# 启动 SSH Agent
eval $(ssh-agent -s)

# 添加私钥
ssh-add ~/.ssh/id_rsa

💡 如果你使用的是 Windows 10/11,也可以启用 OpenSSH 客户端:

控制面板 > 程序 > 启用或关闭 Windows 功能 > OpenSSH 客户端


Linux

  1. 打开 终端(Terminal)
  2. 输入以下命令生成密钥对:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
  1. 按照提示选择保存路径(默认为 ~/.ssh/id_rsa)。
  2. 设置一个可选的密码来保护你的私钥。
自动加载 SSH 密钥(可选)

为了不每次都手动添加密钥,可以在 ~/.bashrc~/.zshrc 中添加以下内容:

eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsa

然后重新加载配置:

source ~/.bashrc   # 或 source ~/.zshrc

三、将公钥添加到 Git 平台(如 GitHub、Gitee 等)

  1. 查看公钥内容:
cat ~/.ssh/id_rsa.pub

复制输出内容。

  1. 登录你的 Git 平台账户(如 GitHubGitee、GitLab 等)。

  2. 进入 Settings -> SSH and GPG keys(不同平台名称可能略有不同)。

  3. 点击 New SSH key,粘贴刚刚复制的内容,填写标题后点击保存。


四、测试 SSH 连接

执行以下命令测试是否能成功连接到 Git 平台(以 GitHub 为例):

ssh -T git@github.com

如果看到类似如下信息,说明配置成功:

Hi username! You've successfully authenticated, but GitHub does not provide shell access.

五、配置多个 SSH 账户(可选)

如果你有多个 Git 账号(例如工作账号和个人账号),可以通过配置不同的 SSH 密钥实现多账户管理。

1. 生成额外的密钥对

例如生成用于工作的密钥:

ssh-keygen -t rsa -b 4096 -C "work_email@example.com" -f ~/.ssh/id_rsa_work

2. 创建或编辑 SSH 配置文件

nano ~/.ssh/config

添加如下内容(以 GitHub 为例):

# 默认账号
Host github.com
    HostName github.com
    User git
    IdentityFile ~/.ssh/id_rsa

# 工作账号
Host github-work
    HostName github.com
    User git
    IdentityFile ~/.ssh/id_rsa_work

3. 测试不同账户

使用别名来测试:

ssh -T git@github-work

六、常见问题与解决方法

提示“Permission denied (publickey)”怎么办?

  • 检查 SSH 配置是否正确。
  • 确保公钥已添加到 Git 平台。
  • 使用 ssh -v git@github.com 查看详细错误日志。

如何查看当前使用的 SSH 密钥?

ssh -i ~/.ssh/id_rsa.pub -v git@github.com

如何切换默认密钥?

修改 ~/.ssh/config 文件中的 IdentityFile 指向即可。


七、结语

配置 SSH 密钥不仅提高了 Git 使用的安全性,也极大提升了开发效率。希望这篇博客能够帮助你在 macOSWindowsLinux 上顺利完成 Git 的 SSH 密钥配置,愉快地进行代码协作与版本管理!

如果你觉得这篇文章对你有帮助,欢迎点赞、收藏或分享给更多开发者。


提示:如果你正在使用其他平台(如 GitLab、Bitbucket、Gitee 等),它们的 SSH 配置方式与 GitHub 类似,只需将对应的主机名替换即可。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐