为多个GitHub账户配置SSH密钥

背景

当需要同时使用多个GitHub账户(例如工作和个人账户)时,默认的SSH配置可能导致冲突。本文介绍如何通过生成不同的SSH密钥对并配置SSH客户端来管理多个账户。

操作步骤

  1. 生成SSH密钥对
    为每个GitHub账户生成独立的密钥对,并指定不同的文件名。

    命令示例:

    # 生成工作账户密钥(默认名称可选)
    ssh-keygen -t ed25519 -C "your_work_email@example.com"
    # 保存为 `id_ed25519_work`# 生成个人账户密钥
    ssh-keygen -t ed25519 -C "your_personal_email@example.com"
    # 保存为 `id_ed25519_personal`
    

    命令解释:

    • ssh-keygen: 生成SSH密钥对的命令。

    • -t ed25519: 指定密钥类型为Ed25519,这是一种现代且安全的密钥类型。

    • -C "your_email@example.com": 为密钥添加注释,通常使用与GitHub账户关联的电子邮件地址。

    • 在提示时选择文件名,例如id_ed25519_workd_ed25519_personal,以便后续区分。

    • 添加SSH密钥到ssh-agent

  2. 添加SSH密钥到ssh-agent
    确保密钥被SSH代理管理:

    # 启动ssh-agent(如未运行)
    eval "$(ssh-agent -s)"# 添加密钥(需根据密钥路径调整)
    ssh-add ~/.ssh/id_ed25519_work
    ssh-add ~/.ssh/id_ed25519_personal
    

    命令解释:

    • eval "$(ssh-agent -s)": 启动SSH代理并将其环境变量加载到当前Shell会话中。
    • ssh-add ~/.ssh/id_ed25519_work: 将工作账户的SSH密钥添加到SSH代理。
    • ssh-add ~/.ssh/id_ed25519_personal: 将个人账户的SSH密钥添加到SSH代理。
  • 配置SSH配置文件 (~/.ssh/config)
    创建或编辑配置文件,为每个账户指定对应的密钥和主机别名。

    配置文件示例:

    # 工作账户
    Host github.com-workHostName github.comUser gitIdentityFile ~/.ssh/id_ed25519_workIdentitiesOnly yes# 个人账户
    Host github.com-personalHostName github.comUser gitIdentityFile ~/.ssh/id_ed25519_personalIdentitiesOnly yes
    

    配置解释:

    • Host github.com-work: 为工作账户设置一个别名,方便后续使用。
    • HostName github.com: 指定实际的GitHub主机名。
    • User git: 指定用于SSH连接的用户名,GitHub的SSH连接始终使用git。
    • IdentityFile ~/.ssh/id_ed25519_work: 指定用于该别名的SSH密钥文件路径。
    • IdentitiesOnly yes: 确保只使用指定的密钥进行身份验证,而不尝试使用其他密钥。
  • 将公钥添加到GitHub账户
    复制对应公钥内容:

    cat ~/.ssh/id_ed25519_work.pub
    cat ~/.ssh/id_ed25519_personal.pub
    

    登录GitHub,依次进入 Settings → SSH and GPG keys → New SSH Key,分别添加公钥。

  • 测试连接
    验证SSH配置是否成功:

    ssh -T git@github.com-work
    # 应返回:Hi [work_username]! You've successfully authenticated...
    ssh -T git@github.com-personal
    # 应返回:Hi [personal_username]! You've successfully authenticated...
    

    命令解释:

    • ssh -T: 测试SSH连接,-T选项表示不分配伪终端。
    • git@github.com-work: 使用工作账户的别名进行连接。
  • 克隆仓库时使用别名
    克隆或配置仓库时,需替换URL中的github.com为配置的Host别名:

    原始URL:
    git@github.com:work_account/project.git

    修改后:
    git@github.com-work:work_account/project.git

注意事项

  1. 权限问题

    • 确保~/.ssh目录权限为700
      chmod 700 ~/.ssh
    • 密钥文件权限应为600
      chmod 600 ~/.ssh/id_ed25519_*
  2. 现有仓库配置更新
    若已克隆仓库,需修改本地仓库的远程URL:

    git remote set-url origin git@github.com-work:work_account/repo.git
    
  3. 多账户Commit关联
    SSH密钥仅处理身份验证,仓库内的Commit用户名/邮箱需通过Git配置单独设置:

    git config user.name "Work Name"
    git config user.email "work@example.com"
    

常见问题

  • 连接失败

    运行 ssh -T -v git@github.com-work 查看详细日志。

  • 密钥未加载

    确认 ssh-add -l 列出已添加的密钥。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/14883.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python Pandas(5):Pandas Excel 文件操作

Pandas 提供了丰富的 Excel 文件操作功能,帮助我们方便地读取和写入 .xls 和 .xlsx 文件,支持多表单、索引、列选择等复杂操作,是数据分析中必备的工具。 操作方法说明读取 Excel 文件pd.read_excel()读取 Excel 文件,返回 DataF…

查看云机器的一些常用配置

云原生学习路线导航页(持续更新中) kubernetes学习系列快捷链接 Kubernetes架构原则和对象设计(一)Kubernetes架构原则和对象设计(二)Kubernetes架构原则和对象设计(三)Kubernetes常…

网站改HTTPS方法

默认的网站建设好后打开的样子那看起来像是钓鱼网站,现在的浏览器特别只能,就是你新买来的电脑默认的浏览器同样也会出现这样“不安全”提示。 传输协议启动了向全球用户安全传输网页内容的流程。然而,随着HTTPS的推出,传输协议通…

ssti学习笔记(服务器端模板注入)

目录 一,ssti是什么 二,原理 所谓模板引擎(三列,可滑动查看) 三,漏洞复现 1,如何判断其所属的模板引擎? 2,判断清楚后开始注入 (1)Jinja2&a…

解决基于FastAPI Swagger UI的文档打不开的问题

基于FastAPI Swagger UI的文档链接/docs和/redoc在没有外网的状态下无法打开,原因是Swagger依赖的JS和CSS来自CDN。 https://cdn.jsdelivr.net/npm/swagger-ui-dist5/swagger-ui-bundle.js https://cdn.jsdelivr.net/npm/swagger-ui-dist5/swagger-ui.css https://…

07苍穹外卖之redis缓存商品、购物车(redis案例缓存实现)

课程内容 缓存菜品 缓存套餐 添加购物车 查看购物车 清空购物车 功能实现:缓存商品、购物车 效果图: 1. 缓存菜品 1.1 问题说明 用户端小程序展示的菜品数据都是通过查询数据库获得,如果用户端访问量比较大,数据库访问压…

UML学习

定义:UML是一种用于软件系统分析和设计的标准化建模语言。 作用:用于描述系统的结构、行为、交互等。共定义了10种,并分为4类 ①用例图 user case diagram : 从外部用户的角度描述系统的功能,并指出功能的执行者. 静态图(②类图 class diagram ③,对象…

ChatGPT提问技巧:行业热门应用提示词案例-文案写作

ChatGPT 作为强大的 AI 语言模型,已经成为文案写作的得力助手。但要让它写出真正符合你需求的文案,关键在于如何与它“沟通”,也就是如何设计提示词(Prompt)。以下是一些实用的提示词案例,帮助你解锁 ChatG…

w~Transformer~合集5

我自己的原文哦~ https://blog.51cto.com/whaosoft/12406495 #transformer~x1 太可怕了都到6了 太强~~ DeepMind 表示,他们提出的算法蒸馏(AD)是首个通过对具有模仿损失的离线数据进行顺序建模以展示上下文强化学习的方法。同时基于观察…

视频采集卡接口

采集卡的正面有MIC IN、LINE IN以及AUDIO OUT三个接口, MIC IN为麦克风输入,我们如果要给采集到的视频实时配音或者是在直播的时候进行讲解,就可以在这里插入一个麦克风, LINE IN为音频线路输入,可以外接播放背景音乐…

【Linux】29.Linux 多线程(3)

文章目录 8.4 生产者消费者模型8.4.1 为何要使用生产者消费者模型8.4.2 生产者消费者模型优点 8.5 基于BlockingQueue的生产者消费者模型8.5.1 C queue模拟阻塞队列的生产消费模型 8.6. 为什么pthread_cond_wait 需要互斥量?8.7 条件变量使用规范8.8 条件变量的封装8.9 POSIX信…

【漫话机器学习系列】084.偏差和方差的权衡(Bias-Variance Tradeoff)

偏差和方差的权衡(Bias-Variance Tradeoff) 1. 引言 在机器学习模型的训练过程中,我们常常面临一个重要的挑战:如何平衡 偏差(Bias) 和 方差(Variance),以提升模型的泛…

OpenCV:视频背景减除

目录 简述 1. MOG 🔷1.1 主要特点 🔷1.2 代码示例 🔷1.3 运行效果 2. MOG2 🔷2.1 主要特点 🔷2.2 代码示例 🔷2.3 运行效果 3. KNN 4. GMG 5. CNT 6. LSBP 7. 如何选择适合的接口&#xff…

【SpringBoot篇】基于Redis分布式锁的 误删问题 和 原子性问题

文章目录 ??Redis的分布式锁??误删问题 ??解决方法??代码实现 ??原子性问题 ??Lua脚本 ?利用Java代码调用Lua脚本改造分布式锁??代码实现 ??Redis的分布式锁 Redis的分布式锁是通过利用Redis的原子操作和特性来实现的。在分布式环境中,多个应用…

计算机视觉语义分割——Attention U-Net(Learning Where to Look for the Pancreas)

计算机视觉语义分割——Attention U-Net(Learning Where to Look for the Pancreas) 文章目录 计算机视觉语义分割——Attention U-Net(Learning Where to Look for the Pancreas)摘要Abstract一、Attention U-Net1. 基本思想2. Attention Gate模块3. 软注意力与硬注意力4. 实验…

Unity笔试常考

线程同步的几种方式 1.信号量pv操作 2.互斥加锁 3.条件变量 五层网络协议指的是哪五层 1.应用层 2.运输层 3.网络层 4.链路层 5.物理层 TCP和UDP区别 tcp 面向连接,保证发送顺序,速度慢,必须在线,三次握手,4次挥手…

Docker数据卷管理及优化

一、基础概念 1.docker数据卷是一个可供容器使用的特殊目录,它绕过了容器的文件系统,直接将数据存在宿主机上。 2.docker数据卷的作用: 数据持久化:即使容器被删除或重建数据卷中的数据仍然存在 数据共享:多个容器可以…

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

博客主页: [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: AIGC | ChatGPT 文章目录 💯前言💯冷启动数据的作用冷启动数据设计 💯多阶段训练的作用阶段 1:冷启动微调阶段 2:推理导向强化学习(RL&#xff0…

Qt:项目文件解析

目录 QWidget基础项目文件解析 .pro文件解析 widget.h文件解析 widget.cpp文件解析 widget.ui文件解析 main.cpp文件解析 认识对象模型 窗口坐标系 QWidget基础项目文件解析 .pro文件解析 工程新建好之后,在工程目录列表中有⼀个后缀为 ".pro" …

BiGRU双向门控循环单元多变量多步预测,光伏功率预测(Matlab完整源码和数据)

代码地址:BiGRU双向门控循环单元多变量多步预测,光伏功率预测(Matlab完整源码和数据) BiGRU双向门控循环单元多变量多步预测,光伏功率预测 一、引言 1.1、研究背景和意义 随着全球对可再生能源需求的不断增长,光伏…