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

git配置2-不同的代码托管平台配置不同的ssh key

  • 1. 配置单个ssh key
    • 1.1. 原理
    • 1.2. 生成 ssh key
    • 1.3. 代码托管平台配置公钥
  • 2. 配置多个ssh key
    • 2.1. 应用场景
    • 2.2. 生成两个不同的key
    • 2.3. 修改config文件
    • 2.4. 配置代码托管平台
    • 2.5. 测试是否成功

1. 配置单个ssh key

1.1. 原理

使用ssh命令行工具(git安装成功后默认就会有这个工具)生成一对非对称加密的密钥和公钥。公钥配置到代码托管平台中,私钥存储在本地。

1.2. 生成 ssh key

ssh-keygen -t ed25519 -C "<注释内容>"
# 或
ssh-keygen -t rsa -C "<注释内容>"

参数说明

  • -t: key的类型,表示生成密钥对使用的算法, 可以是 ed25519 或 rsa,建议使用ed25519。
  • -C: 注释内容,可以是任意内容,用于标识该密钥对,大部分开发者会习惯把他设置成自己的邮箱。

输入这个命令后,会出现一系列提示,你可以一路按回车(Enter)使用默认设置即可。

设置成功后会在 ~/.ssh/ 目录下生成两个文件:

  • id_ed25519:私钥文件,请妥善保管。
  • id_ed25519.pub:公钥文件,将其配置到代码托管平台中。

1.3. 代码托管平台配置公钥

  1. 拷贝 id_ed25519.pub 文件的内容。

  2. 登录对应的代码托管平台,如GitHub、Gitee等,找到ssh key设置页面。将对应公钥的内容添加到代码托管平台中。

  • GitHub: 右上角个人头像->Settings->SSH and GPG keys->New SSH key,也可以点击这个链接。
  • Gitee: 右上角个人头像->设置->SSH公钥,也可以点击这个链接。

2. 配置多个ssh key

2.1. 应用场景

我们可能会在一台电脑上为多个项目写代码,代码会提交到不同的代码托管平台。如上班时公司的代码仓库可能会用gitlab来管理,下班后可能会往GitHub或Gitee上提交自己的开源项目的代码。

为了安全考虑,你可能会为两个不同的代码托管平台配置不同的ssh key。

这里以github和gitee为例,演示如何配置不同的ssh key。

2.2. 生成两个不同的key

ssh-keygen -t ed25519 -C "<注释内容>"
# 或
ssh-keygen -t rsa -C "<注释内容>"

输入以上命令生成密钥对,在出现 Enter file in which to save the key提示时,输入密钥对文件的保存路径,如:~/.ssh/github_id_ed25519~/.ssh/gitee_id_ed25519

这样你就有了两对不同名称的密钥对,可以通过 ls ~/.ssh命令查看。

  • github_id_ed25519 和 github_id_ed25519.pub
  • gitee_id_ed25519 和 gitee_id_ed25519.pub

2.3. 修改config文件

在.ssh文件夹下面新建一个命名为config的文件,编辑如下内容

# gitee
Host gitee.com
HostName gitee.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/gitee_id_ed25519
# github
Host github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/github_id_ed25519

2.4. 配置代码托管平台

参考1.3. 代码托管平台配置公钥配置公钥。将 github_id_ed25519.pub 的内容配置到github, 将 gitee_id_ed25519.pub 的内容配置到gitee。

2.5. 测试是否成功

# 测试github是否成功
ssh -T git@github.com
# 测试gitee是否成功
ssh -T git@gitee.com
ssh -T git@github.comThe authenticity of host 'github.com (20.205.243.166)' can't be established.
ED25519 key fingerprint is SHA256:+DiY3wvvV6TuJJhbpZisF/zLDA0zPMSvHdkr4UvCOqU.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added 'github.com' (ED25519) to the list of known hosts.
Hi spencer-luo! You've successfully authenticated, but GitHub does not provide shell access.

第一次使用时会提示是否继续连接,输入yes即可。这是因为ssh不确定需要用哪个key来与github.com建立连接,输入yes后,会在 /.ssh/known_hosts文件中记录github.com的公钥,下次再连接时就不会再提示了。

相关文章:

git配置2-不同的代码托管平台配置不同的ssh key

1. 配置单个ssh key 1.1. 原理1.2. 生成 ssh key1.3. 代码托管平台配置公钥 2. 配置多个ssh key 2.1. 应用场景2.2. 生成两个不同的key2.3. 修改config文件2.4. 配置代码托管平台2.5. 测试是否成功 1. 配置单个ssh key 1.1. 原理 使用ssh命令行工具&#xff08;git安装成功…...

【CT】LeetCode手撕—102. 二叉树的层序遍历

目录 题目1-思路2- 实现⭐102. 二叉树的层序遍历——题解思路 3- ACM实现3-1 二叉树构造3-2 整体实现 题目 原题连接&#xff1a;102. 二叉树的层序遍历 1-思路 1.借助队列 Queue &#xff0c;每次利用 ①while 循环遍历当前层结点&#xff0c;②将当前层结点的下层结点放入 …...

Flink 命令行提交、展示和取消作业

Apache Flink 是一个流处理和批处理的开源框架&#xff0c;用于在分布式环境中执行无边界和有边界的数据流。你可以使用 Flink 的命令行界面&#xff08;CLI&#xff09;来提交、展示和取消作业。 提交作业 使用 Flink CLI 提交作业的命令格式通常如下&#xff1a; ./bin/fl…...

STM32单片机选型方法

一.STM32单片机选型方法 1.首先要确定需求&#xff1a; 性能需求&#xff1a;根据应用的复杂度和性能要求&#xff0c;选择合适的CPU性能和主频。 内存需求&#xff1a;确定所需的内存大小&#xff0c;包括RAM和Flash存储空间。 外设需求&#xff1a;根据应用所需的功能&…...

gsap动画库的实践

先看效果&#xff1a; gsap动画库 安装插件&#xff1a;npm install gsap <template><div><h1 style"text-align: left">gsap的用法</h1><h1 style"text-align: left">https://gsap.com/resources/get-started</h1>&…...

LeetCode | 387.字符串中的第一个唯一字符

这道题可以用字典解决&#xff0c;只需要2次遍历字符串&#xff0c;第一次遍历字符串&#xff0c;记录每个字符出现的次数&#xff0c;第二次返回第一个出现次数为1的字符的下标&#xff0c;若找不到则返回-1 class Solution(object):def firstUniqChar(self, s):""…...

textarea 中的内容在word中显示换行不起作用

js文本换行在word显示 在JavaScript中&#xff0c;处理文本换行以确保它在Word中正确显示&#xff0c;通常需要将文本中的换行符转换为Word可识别的格式。在HTML中&#xff0c;换行通常是通过<br>标签来实现的&#xff0c;而在Word中&#xff0c;换行通常由段落标签<…...

Python 测试用例

在Python中编写测试用例通常使用unittest模块&#xff0c;这是Python标准库的一部分&#xff0c;专门用于编写和运行测试。下面是一个简单的测试用例的例子&#xff0c;展示了如何使用unittest模块来测试一个函数。 假设我们有一个简单的函数&#xff0c;用于计算两个数的和&a…...

树莓派等Linux开发板上使用 SSD1306 OLED 屏幕,bullseye系统 ubuntu,debian

Raspberry Pi OS Bullseye 最近发布了,随之而来的是许多改进,但其中大部分都在引擎盖下。没有那么多视觉差异,最明显的可能是新的默认桌面背景,现在是大坝或湖泊上的日落。https://www.the-diy-life.com/add-an-oled-stats-display-to-raspberry-pi-os-bullseye/ 通过这次操…...

SpringBoot3 整合 Mybatis 完整版

本文记录一下完整的 SpringBoot3 整合 Mybatis 的步骤。 只要按照本步骤来操作&#xff0c;整合完成后就可以正常使用。1. 添加数据库驱动依赖 以 MySQL 为例。 当不指定 依赖版本的时候&#xff0c;会 由 springboot 自动管理。 <dependency><groupId>com.mysql&l…...

图解Transformer学习笔记

教程是来自https://github.com/datawhalechina/learn-nlp-with-transformers/blob/main/docs/ 图解Transformer Attention为RNN带来了优点&#xff0c;那么有没有一种神经网络结构直接基于Attention构造&#xff0c;而不再依赖RNN、LSTM或者CNN的结构&#xff0c;这就是Trans…...

【Java并发编程之美 | 第一篇】并发编程线程基础

文章目录 1.并发编程线程基础1.1什么是线程和进程&#xff1f;1.2线程创建与运行1.2.1继承Thread类1.2.2实现Runnable接口1.2.3实现Callable接口&#xff08;与线程池搭配使用&#xff09;1.2.4小结 1.3线程常用方法1.3.1线程等待与通知1.3.2线程睡眠1.3.3让出CPU执行权1.3.4线…...

基于python-CNN卷积网络训练识别牛油果和猕猴桃-含数据集+pyqt界面

代码下载地址&#xff1a; https://download.csdn.net/download/qq_34904125/89383066 本代码是基于python pytorch环境安装的。 下载本代码后&#xff0c;有个requirement.txt文本&#xff0c;里面介绍了如何安装环境&#xff0c;环境需要自行配置。 或可直接参考下面博文…...

论文笔记:ATime-Aware Trajectory Embedding Model for Next-Location Recommendation

Knowledge and Information Systems, 2018 1 intro 1.1 背景 随着基于位置的社交网络&#xff08;LBSNs&#xff09;&#xff0c;如Foursquare和Facebook Places的日益流行&#xff0c;大量用户签到数据变得可用 这些大量签到数据的可用性带来了许多有用的应用&#xff0c;以…...

深度学习之---迁移学习

目录 一、什么是迁移学习 二、为什么需要迁移学习&#xff1f; 1. 大数据与少标注的矛盾&#xff1a; 2. 大数据与弱计算的矛盾&#xff1a; 3. 普适化模型与个性化需求的矛盾&#xff1a; 4. 特定应用&#xff08;如冷启动&#xff09;的需求。 三、迁移学习的基本问题有…...

百度网盘限速解决办法

文章目录 开启P2P下载30秒会员下载体验一次性高速下载服务导入“百度网盘青春版”后下载注册新号参与活动 获取下载直链后使用磁力链接下载不是办法的办法无效、已失效方法免限速客户端、老版本客户端、永久会员下载体验试用客户端&#xff0c;或类似脚本、工具获取下载直链后多…...

银河麒麟系统项目部署

使用服务器信息 软件&#xff1a;VMware Workstation Pro 虚拟机&#xff1a;ubtun 内存&#xff1a;20G 虚拟机连接工具&#xff1a; MobaXterm Redis连接工具&#xff1a; RedisDesktopManager 镜像&#xff1a;F:\Kylin-Server-10-8.2-Release-Build09-20211104-X86_64…...

Stable Diffusion【应用篇】【艺术写真】:粘土风之后陶瓷风登场,来看看如何整合AI艺术写真吧

在国外的APP Remini引爆了粘土滤镜后&#xff0c;接着Remini又推出了瓷娃娃滤镜。相当粘土滤镜&#xff0c;个人更喜欢瓷娃娃滤镜&#xff0c;因为陶瓷工艺更符合东方艺术审美。 下面我们就来看看陶瓷特效在AI写真方面的应用。话不多说&#xff0c;我们直接开整。 关于粘土整…...

手机IP地址距离多远会变:解析移动设备的网络定位奥秘

在移动互联网时代&#xff0c;手机IP地址扮演着至关重要的角色&#xff0c;它不仅是我们访问网络的基础&#xff0c;还常常与网络定位、地理位置服务等相关联。那么&#xff0c;手机IP地址在距离多远时会发生变化呢&#xff1f;手机IP地址距离多远会变&#xff1f;下面跟着虎观…...

ChatGPT中文镜像网站分享

ChatGPT 是什么&#xff1f; ChatGPT 是 OpenAI 开发的一款基于生成预训练变换器&#xff08;GPT&#xff09;架构的大型语言模型。主要通过机器学习生成文本&#xff0c;能够执行包括问答、文章撰写、翻译等多种文本生成任务。截至 2023 年初&#xff0c;ChatGPT 的月活跃用户…...

STM32F407霸天虎开发板I2C驱动OLED避坑指南:从CubeMX配置到显示中文全流程

STM32F407霸天虎开发板I2C驱动OLED避坑指南&#xff1a;从CubeMX配置到显示中文全流程 在嵌入式开发中&#xff0c;OLED显示屏因其高对比度、低功耗和轻薄特性成为许多项目的首选显示方案。本文将深入探讨如何基于STM32F407霸天虎开发板&#xff0c;通过HAL库和I2C接口高效驱动…...

基于Arduino与IRLib2的万能遥控器DIY:从红外解码到蓝牙HID的嵌入式实践

1. 项目概述与核心价值如果你和我一样&#xff0c;家里电视、机顶盒、音响、空调的遥控器堆满了茶几&#xff0c;每次想用都得翻找半天&#xff0c;或者你正在为一位行动不便的亲友寻找一种更便捷的控制家电的方式&#xff0c;那么这个基于Arduino和IRLib2的万能遥控器DIY项目&…...

开发者会话管理工具:提升多任务开发效率的利器

1. 项目概述&#xff1a;一个为开发者打造的会话管理利器在开发日常中&#xff0c;我们常常会同时打开多个终端窗口、IDE项目、数据库连接或者远程服务器会话。一天下来&#xff0c;桌面上可能散落着十几个终端标签页&#xff0c;每个都承载着不同的上下文&#xff1a;一个在跑…...

宝塔面板 SyntaxError: invalid syntax 报错 完美修复教程

宝塔面板 SyntaxError: invalid syntax 报错 完美修复教程 一、故障现象 宝塔面板版本&#xff1a;11.7.0 系统&#xff1a;Debian GNU/Linux 10 (buster) x86_64 Python3.7.9 访问网站列表/站点管理报错&#xff1a; SyntaxError: invalid syntax /www/server/panel/class/pan…...

基于Code Llama的本地AI编程助手:VSCode插件部署与优化实战

1. 项目概述&#xff1a;为什么我们需要一个更聪明的代码助手&#xff1f;在VSCode的插件市场里搜索“AI代码补全”&#xff0c;结果可能会让你眼花缭乱。从基于GPT的Copilot到各种开源模型驱动的工具&#xff0c;选择很多&#xff0c;但痛点也很明显&#xff1a;要么需要稳定的…...

AI代码助手与Django全栈开发:人机协同编程新范式实践

1. 项目概述&#xff1a;当AI代码助手遇上Django全栈开发如果你是一名独立开发者、初创公司的技术负责人&#xff0c;或者正在学习全栈开发&#xff0c;那么“Cursor-Django”这个项目绝对值得你花时间研究。这不是一个简单的Django教程&#xff0c;而是一个由Coding for Entre…...

接手遗留系统第一周,我做了三件事,团队从此不再怕改老代码

刚跳槽到新公司&#xff0c;技术总监在入职谈话时递给我一杯咖啡&#xff0c;语气沉重地说&#xff1a;“我们最核心的交易系统已经跑了八年&#xff0c;负责它的老张去年离职了。现在整个团队没人敢动里面的代码&#xff0c;每次改需求都像在拆炸弹。”他停顿了一下&#xff0…...

郎朗乐境音乐会定档7月5日深圳:以破界之姿,开启全维感官盛宴

2026年7月5日&#xff0c;郎朗乐境音乐会将在深圳市宝安体育中心体育馆启幕&#xff0c;作为“深圳国际形象大使”的郎朗&#xff0c;将在这座以创新著称的国际化都市&#xff0c;&#xff0c;进一步探索艺术表达形式的多重可能&#xff0c;呈现一场融合音乐、文化与多维感官体…...

Protégé工具与OWL本体建模实践指南

1. 本体建模基础与Protg工具概述本体&#xff08;Ontology&#xff09;作为知识工程领域的核心概念&#xff0c;最初源自哲学领域&#xff0c;在计算机科学中被重新定义为"对共享概念体系的明确形式化规范说明"。在语义网架构中&#xff0c;本体位于XML和RDF层之上&a…...

构建AI智能体调度平台:从微服务架构到工程实践

1. 项目概述&#xff1a;一个面向智能体的“Airbnb”式调度平台最近在折腾AI智能体&#xff08;Agent&#xff09;相关的项目&#xff0c;发现一个挺有意思的现象&#xff1a;大家把模型、工具链、工作流都搭好了&#xff0c;但真要让多个智能体协同工作&#xff0c;或者把智能…...