当前位置: 首页 > java >正文

Git 配置 SSH 密钥与私钥教程(跨平台完整指南)

前言

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

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


目录

  1. 一、检查是否已有 SSH 密钥
  2. 二、生成新的 SSH 密钥对
    • macOS
    • Windows
    • Linux
  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 平台账户(如 GitHub、Gitee、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.comHostName github.comUser gitIdentityFile ~/.ssh/id_rsa# 工作账号
Host github-workHostName github.comUser gitIdentityFile ~/.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 类似,只需将对应的主机名替换即可。

http://www.xdnf.cn/news/14404.html

相关文章:

  • 京东API接口最新指南:店铺所有商品接口的接入与使用
  • 易语言模拟真人鼠标轨迹算法 - 非贝塞尔曲线
  • 大模型的开发应用(十一):对话风格微调项目(下):微调与部署
  • 《AI辅助编程:从零掌握核心逻辑》工作坊开业
  • mysql修改密码笔记
  • 基于51单片机的智能小车:按键调速、障碍跟踪、红外循迹与数码管显示(一个合格的单片机课设)
  • 浙江康冠锁业携智能锁具亮相2025上海国际快递物流展
  • 山东大学软件学院创新项目实训开发日志——第十七周(二)
  • 【C语言扩展识别实数负数】2022-5-29
  • Web第二次方向考核复盘
  • OpenHarmony 5.0读取文件并写入到另一份文件(公共文件夹),并保持原先的格式以及编码类型
  • 论文略读:Does Refusal Training in LLMs Generalize to the Past Tense?
  • Hierarchical Vector Quantization for Unsupervised Action Segmentation
  • 介质访问控制——随机访问控制
  • Java的DI依赖注入
  • 2025如何快速给人物模型添加骨骼
  • 【Python机器学习(一)】NumPy/Pandas手搓决策树+使用Graphviz可视化(以西瓜书数据集为例)
  • 【深度剖析】领信卓越:福耀玻璃的数字化转型(上篇2:转型动机分析)
  • 嵌入式知识篇---三种坐标系
  • 揭开肾细胞的分子密码:当 METTL3 遇上 FOSL1【AbMole】
  • Android 与 ESP-01 WIFI模块通信
  • Tomcat 配置双击启动
  • 141. 环形链表
  • 概率期望DP
  • 【茶社茶楼专用软件】佳易王茶社茶楼计时计费会员管理软件介绍
  • 深度解析企业风控API技术实践:构建全方位企业风险画像系统
  • 【运维系列】【ubuntu22.04】安装Docker
  • 【性能优化】启用zram
  • 个人笔记-- TCL 替换
  • WebAssembly的本质与核心价值