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

2024-06-15 02:52

本文主要是介绍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的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1062233

相关文章

Python如何计算两个不同类型列表的相似度

《Python如何计算两个不同类型列表的相似度》在编程中,经常需要比较两个列表的相似度,尤其是当这两个列表包含不同类型的元素时,下面小编就来讲讲如何使用Python计算两个不同类型列表的相似度吧... 目录摘要引言数字类型相似度欧几里得距离曼哈顿距离字符串类型相似度Levenshtein距离Jaccard相

Python中顺序结构和循环结构示例代码

《Python中顺序结构和循环结构示例代码》:本文主要介绍Python中的条件语句和循环语句,条件语句用于根据条件执行不同的代码块,循环语句用于重复执行一段代码,文章还详细说明了range函数的使... 目录一、条件语句(1)条件语句的定义(2)条件语句的语法(a)单分支 if(b)双分支 if-else(

在不同系统间迁移Python程序的方法与教程

《在不同系统间迁移Python程序的方法与教程》本文介绍了几种将Windows上编写的Python程序迁移到Linux服务器上的方法,包括使用虚拟环境和依赖冻结、容器化技术(如Docker)、使用An... 目录使用虚拟环境和依赖冻结1. 创建虚拟环境2. 冻结依赖使用容器化技术(如 docker)1. 创

关于Spring @Bean 相同加载顺序不同结果不同的问题记录

《关于Spring@Bean相同加载顺序不同结果不同的问题记录》本文主要探讨了在Spring5.1.3.RELEASE版本下,当有两个全注解类定义相同类型的Bean时,由于加载顺序不同,最终生成的... 目录问题说明测试输出1测试输出2@Bean注解的BeanDefiChina编程nition加入时机总结问题说明

SpringBoot+MyBatis-Flex配置ProxySQL的实现步骤

《SpringBoot+MyBatis-Flex配置ProxySQL的实现步骤》本文主要介绍了SpringBoot+MyBatis-Flex配置ProxySQL的实现步骤,文中通过示例代码介绍的非常详... 目录 目标 步骤 1:确保 ProxySQL 和 mysql 主从同步已正确配置ProxySQL 的

Spring Boot整合log4j2日志配置的详细教程

《SpringBoot整合log4j2日志配置的详细教程》:本文主要介绍SpringBoot项目中整合Log4j2日志框架的步骤和配置,包括常用日志框架的比较、配置参数介绍、Log4j2配置详解... 目录前言一、常用日志框架二、配置参数介绍1. 日志级别2. 输出形式3. 日志格式3.1 PatternL

MySQL数据库函数之JSON_EXTRACT示例代码

《MySQL数据库函数之JSON_EXTRACT示例代码》:本文主要介绍MySQL数据库函数之JSON_EXTRACT的相关资料,JSON_EXTRACT()函数用于从JSON文档中提取值,支持对... 目录前言基本语法路径表达式示例示例 1: 提取简单值示例 2: 提取嵌套值示例 3: 提取数组中的值注意

配置springboot项目动静分离打包分离lib方式

《配置springboot项目动静分离打包分离lib方式》本文介绍了如何将SpringBoot工程中的静态资源和配置文件分离出来,以减少jar包大小,方便修改配置文件,通过在jar包同级目录创建co... 目录前言1、分离配置文件原理2、pom文件配置3、使用package命令打包4、总结前言默认情况下,

CSS3中使用flex和grid实现等高元素布局的示例代码

《CSS3中使用flex和grid实现等高元素布局的示例代码》:本文主要介绍了使用CSS3中的Flexbox和Grid布局实现等高元素布局的方法,通过简单的两列实现、每行放置3列以及全部代码的展示,展示了这两种布局方式的实现细节和效果,详细内容请阅读本文,希望能对你有所帮助... 过往的实现方法是使用浮动加

JAVA调用Deepseek的api完成基本对话简单代码示例

《JAVA调用Deepseek的api完成基本对话简单代码示例》:本文主要介绍JAVA调用Deepseek的api完成基本对话的相关资料,文中详细讲解了如何获取DeepSeekAPI密钥、添加H... 获取API密钥首先,从DeepSeek平台获取API密钥,用于身份验证。添加HTTP客户端依赖使用Jav