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

相关文章

C#使用SQLite进行大数据量高效处理的代码示例

《C#使用SQLite进行大数据量高效处理的代码示例》在软件开发中,高效处理大数据量是一个常见且具有挑战性的任务,SQLite因其零配置、嵌入式、跨平台的特性,成为许多开发者的首选数据库,本文将深入探... 目录前言准备工作数据实体核心技术批量插入:从乌龟到猎豹的蜕变分页查询:加载百万数据异步处理:拒绝界面

用js控制视频播放进度基本示例代码

《用js控制视频播放进度基本示例代码》写前端的时候,很多的时候是需要支持要网页视频播放的功能,下面这篇文章主要给大家介绍了关于用js控制视频播放进度的相关资料,文中通过代码介绍的非常详细,需要的朋友可... 目录前言html部分:JavaScript部分:注意:总结前言在javascript中控制视频播放

SpringCloud动态配置注解@RefreshScope与@Component的深度解析

《SpringCloud动态配置注解@RefreshScope与@Component的深度解析》在现代微服务架构中,动态配置管理是一个关键需求,本文将为大家介绍SpringCloud中相关的注解@Re... 目录引言1. @RefreshScope 的作用与原理1.1 什么是 @RefreshScope1.

Spring Boot 3.4.3 基于 Spring WebFlux 实现 SSE 功能(代码示例)

《SpringBoot3.4.3基于SpringWebFlux实现SSE功能(代码示例)》SpringBoot3.4.3结合SpringWebFlux实现SSE功能,为实时数据推送提供... 目录1. SSE 简介1.1 什么是 SSE?1.2 SSE 的优点1.3 适用场景2. Spring WebFlu

SpringBoot日志配置SLF4J和Logback的方法实现

《SpringBoot日志配置SLF4J和Logback的方法实现》日志记录是不可或缺的一部分,本文主要介绍了SpringBoot日志配置SLF4J和Logback的方法实现,文中通过示例代码介绍的非... 目录一、前言二、案例一:初识日志三、案例二:使用Lombok输出日志四、案例三:配置Logback一

java之Objects.nonNull用法代码解读

《java之Objects.nonNull用法代码解读》:本文主要介绍java之Objects.nonNull用法代码,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录Java之Objects.nonwww.chinasem.cnNull用法代码Objects.nonN

springboot security之前后端分离配置方式

《springbootsecurity之前后端分离配置方式》:本文主要介绍springbootsecurity之前后端分离配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的... 目录前言自定义配置认证失败自定义处理登录相关接口匿名访问前置文章总结前言spring boot secu

一文详解SpringBoot响应压缩功能的配置与优化

《一文详解SpringBoot响应压缩功能的配置与优化》SpringBoot的响应压缩功能基于智能协商机制,需同时满足很多条件,本文主要为大家详细介绍了SpringBoot响应压缩功能的配置与优化,需... 目录一、核心工作机制1.1 自动协商触发条件1.2 压缩处理流程二、配置方案详解2.1 基础YAML

springboot简单集成Security配置的教程

《springboot简单集成Security配置的教程》:本文主要介绍springboot简单集成Security配置的教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录集成Security安全框架引入依赖编写配置类WebSecurityConfig(自定义资源权限规则

SpringBoot中封装Cors自动配置方式

《SpringBoot中封装Cors自动配置方式》:本文主要介绍SpringBoot中封装Cors自动配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录SpringBoot封装Cors自动配置背景实现步骤1. 创建 GlobalCorsProperties