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

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

前言

在使用 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 -b4096-C"[email protected]"

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 -b4096-C"[email protected]"
  1. 按照提示选择保存路径,默认为 C:\Users\<YourUsername>\.ssh\id_rsa
  2. 可选:设置密码以增强安全性。
使用 SSH Agent

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

# 启动 SSH Agenteval$(ssh-agent -s)# 添加私钥 ssh-add ~/.ssh/id_rsa 
💡 如果你使用的是 Windows 10/11,也可以启用 OpenSSH 客户端:

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

Linux

  1. 打开 终端(Terminal)
  2. 输入以下命令生成密钥对:
ssh-keygen -t rsa -b4096-C"[email protected]"
  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 [email protected] 

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

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

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

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

1. 生成额外的密钥对

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

ssh-keygen -t rsa -b4096-C"[email protected]"-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 [email protected] 查看详细错误日志。

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

ssh-i ~/.ssh/id_rsa.pub -v [email protected] 

如何切换默认密钥?

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


七、结语

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

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


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

Read more

【AIGC】冷启动数据与多阶段训练在 DeepSeek 中的作用

【AIGC】冷启动数据与多阶段训练在 DeepSeek 中的作用

博客主页: [小ᶻ☡꙳ᵃⁱᵍᶜ꙳]本文专栏: AIGC |ChatGPT 文章目录 * 💯前言 * 💯冷启动数据的作用 * 冷启动数据设计 * 💯多阶段训练的作用 * 阶段 1:冷启动微调 * 阶段 2:推理导向强化学习(RL) * 阶段 3:拒绝采样与监督微调(SFT) * 阶段 4:多场景强化学习 * 💯代码示例:冷启动数据与多阶段训练的实现 * 1. 冷启动微调阶段 * 作用与应用: * 2. 推理导向的强化学习阶段 * 作用与应用: * 3. 拒绝采样与监督微调阶段 * 作用与应用: * 4. 多场景强化学习 * 作用与应用: * 总体流程 * DeepSeek 中的应用 * 💯总结 💯前言 在人工智能领域,深度学习模型的训练和优化往往需要大量的标注数据和计算资源。然而,面对复杂任务时,即使是最先进的技术和大量的训练数据也未必能够保证模型的最优表现。DeepSeek

By Ne0inhk

Lostlife2.0角色对话系统升级:基于LLama-Factory微调剧情模型

Lostlife2.0角色对话系统升级:基于LLama-Factory微调剧情模型 在如今的互动叙事游戏中,玩家早已不再满足于“点击选项、观看动画”的被动体验。他们渴望与NPC进行真正意义上的对话——那些回应不只是预设脚本的回声,而是带着性格、记忆和情绪的真实反应。然而,要让一个虚拟角色“活”起来,远非堆砌几句台词那么简单。 传统基于规则或模板的对话系统,在面对开放性提问时往往暴露其机械本质:“你今天怎么样?”可能得到千篇一律的回答,无论这个角色刚经历了生死逃亡还是平静度日。这种断裂感严重削弱了沉浸体验。而通用大语言模型虽然能生成流畅文本,却容易脱离角色设定,说出不符合世界观甚至“OOC”(Out of Character)的内容。 正是在这种背景下,“Lostlife2.0”项目决定彻底重构其角色对话引擎:不再依赖硬编码逻辑,而是通过对大模型进行精细化微调,打造一套真正属于游戏世界的“人格化AI”。我们选择的技术路径,是开源社区中日益成熟的 LLama-Factory 框架。 为什么是 LLama-Factory? 市面上并不缺少大模型训练工具,Hugging Face 的

By Ne0inhk
GitHub Agent HQ 全流程实战教程:从 Copilot Pro + 接入到代码库全生命周期管理(重构 + 测试 + 部署自动化 + 权限避坑)

GitHub Agent HQ 全流程实战教程:从 Copilot Pro + 接入到代码库全生命周期管理(重构 + 测试 + 部署自动化 + 权限避坑)

背景引入:AI 驱动的代码库全生命周期管理新范式 问题驱动 随着软件项目复杂度提升,开发者面临代码重构效率低、测试覆盖不足、部署流程繁琐、权限管理易疏漏等痛点。传统开发模式下,从代码编写到生产部署需跨多个工具链,上下文割裂导致协作成本高。GitHub Agent HQ 作为基于 Copilot Pro 的智能开发代理,通过大语言模型(LLM)深度理解代码库上下文,实现重构、测试、部署的全流程自动化,成为提升开发效率的核心工具。 技术趋势 2026 年,AI 辅助开发已从“代码补全”进化为“全流程代理”。GitHub Agent HQ 依托 Copilot Pro 的增强型 LLM 能力,结合 GitHub 原生生态,支持代码库深度索引、多步骤任务编排、工具链自动调用,是当前

By Ne0inhk

对于VScode中Copilot插件使用卡顿问题的解决办法

copilot卡顿主要是网络和内存占用原因。 VScode内存优化解决办法: 结合链接和我补充的基本都可以解决。 解决VSCode无缘无故卡顿的问题_vscode卡顿-ZEEKLOG博客 在VScode中打开setting.json文件,打开方法ctrl+shift+p,输入Preferences: Open User Settings (JSON), 然后添加如下代码: { "search.followSymlinks": false, "git.autorefresh": false, "editor.formatOnSave": false } 结合链接和我补充的基本都可以解决。 VScode代理问题: vscode copilot长时间没反应_vscode中copilot总是卡住-ZEEKLOG博客 配置代理的话两种方法,上面是一种,推荐两种结合起来用(不冲突) 还是在setting.json文件中,添加如下代码: { "http.proxy": "http://127.

By Ne0inhk