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

 更新时间:2025年06月16日 10:15:49   作者:超级小忍  
在使用 Git 进行版本控制时,SSH 是一种安全、高效的认证方式,本文将详细介绍如何生成 SSH 密钥对,并将其配置到 Git 和 GitHub(或其他平台)中,有需要的小伙伴可以了解下

前言

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

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

一、检查是否已有 SSH 密钥

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

ls -al ~/.ssh

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

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

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

二、生成新的 SSH 密钥对

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

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

macOS

打开 终端(Terminal)。

输入上述命令生成密钥对。

按照提示选择保存路径(默认为 ~/.ssh/id_rsa)。

设置一个可选的密码来保护你的私钥。

添加到钥匙串(推荐)

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

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

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

Windows

建议使用 Git Bash 或 PowerShell 来执行命令。

1.打开 Git Bash 或 PowerShell。

2.输入以下命令生成密钥对:

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

3.按照提示选择保存路径,默认为 C:\Users\<YourUsername>\.ssh\id_rsa。

4.可选:设置密码以增强安全性。

使用 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"

3.按照提示选择保存路径(默认为 ~/.ssh/id_rsa)。

4.设置一个可选的密码来保护你的私钥。

自动加载 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

复制输出内容。

2.登录你的 Git 平台账户(如 GitHub、Gitee、GitLab 等)。

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

4.点击 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 使用的安全性,也极大提升了开发效率。希望这篇博客能够帮助你在 macOS、Windows 和 Linux 上顺利完成 Git 的 SSH 密钥配置,愉快地进行代码协作与版本管理!

到此这篇关于Git配置SSH密钥与私钥的教程(跨平台完整指南)的文章就介绍到这了,更多相关Git配置SSH密钥与私钥内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • git提交报错pre -commit hook failed (add --no-verify)问题及解决

    git提交报错pre -commit hook failed (add 

    这篇文章主要介绍了git提交报错pre -commit hook failed (add --no-verify)问题及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11
  • Git忽略提交的3种方法及Git忽略规则

    Git忽略提交的3种方法及Git忽略规则

    在使用Git的过程中,我们喜欢有的文件比如日志,临时文件,编译的中间文件等不要提交到代码仓库,这时就要设置相应的忽略规则今天为大家简单介绍下Git的忽略及规则
    2018-10-10
  • 微信小程序给图片做动态标注的实例分享

    微信小程序给图片做动态标注的实例分享

    这篇文章主要介绍了微信小程序给图片做动态标注的一个简化的教程,帮助你了解如何在微信小程序中实现图片标注的功能,需要的朋友可以参考下
    2023-08-08
  • 基于rsync写脚本实现多节点多服务器文件一键同步的方法

    基于rsync写脚本实现多节点多服务器文件一键同步的方法

    这篇文章主要介绍了利用rsync写脚本实现多节点多服务器文件一键同步,本文将介绍 scp 和 rsync 两个命令及基本语法介绍,需要的朋友可以参考下
    2022-01-01
  • VSCode 使用Settings Sync同步配置(最新版教程,非常简单)

    VSCode 使用Settings Sync同步配置(最新版教程,非常简单)

    这篇文章主要介绍了VSCode 使用Settings Sync同步配置(最新版教程,非常简单),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-11-11
  • 手把手教你学会HBuilder打包APP

    手把手教你学会HBuilder打包APP

    我们打包APP需要用到HBuilder,所以本文主要介绍了HBuilder下载安装以及如何使用,最后介绍如何打包app,感兴趣的可以了解一下
    2021-06-06
  • Git报错:fatal:refusing to merge unrelated histories问题解决过程

    Git报错:fatal:refusing to merge unrelated histories问题解决过程

    本文作者分享了因误删.git文件夹而引发的Git报错解决过程,作者尝试重新初始化仓库并拉取代码,但遭到了Git的拒绝,作者认为正确的做法是重新克隆代码库,以保留完整的提交历史记录,本文提醒我们要重视Git的历史记录机制及其重要性
    2026-04-04
  • http 200、301、304等状态码详解

    http 200、301、304等状态码详解

    在利用httpwatch进行抓包分析时,我们经常会看到200、301、304这几个状态码。具本三者是什么意思呢?这里脚本之家小编就为大家介绍一下
    2017-07-07
  • 如何禁止浏览器使用后退按钮功能

    如何禁止浏览器使用后退按钮功能

    浏览器的后退按钮使得我们能够方便地返回以前访问过的页面,它无疑非常有用。但有时候我们不得不关闭这个功能,以防止用户打乱预定的页面访问次序。
    2014-09-09
  • 解决IDEA GIT记录无法查看提交文件的问题

    解决IDEA GIT记录无法查看提交文件的问题

    这篇文章主要介绍了解决IDEA GIT记录无法查看提交文件的问题,本文通过图文实例相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-10-10

最新评论