GitHubGiteeGitlab极狐(JihuLab)同时生成并配置SSH公私钥详细过程

GitHub-微软-github.com
Gitee-开源中国- gitee.com
Gitlab-乌克兰GitLab 公司-gitlab.com
极狐(JihuLab)-中国代理商运营的Gitlab -gitlab.cn或者jihulab.com

使用SSH公钥可以让你在你的电脑和GitHub等平台通讯的时候使用更安全的连接Git的Remote要使用SSH地址,例如git@gitee.com:king/example.git),但速度没有HTTPS(例如https://gitee.com/king/example.git)快。今天就来学习一下使用SSH公钥让电脑和GitHub等平台通讯的时候,使用安全连接配置的详细过程

一、生成SSH公钥和私钥

1.1 取消全局设置

如果曾经直接在TortoiseGit设置过或者使用过下面的指令设置过全局的 user.name 和 user.email。

$ git config --global user.name   "你的名字"
$ git config --global user.email  "你的邮箱"

可以使用下面的指令清除全局设置【推荐使用】

$ git config --global --unset user.name "你的名字"
$ git config --global --unset user.email "你的邮箱"

git config --global --list指令查看你是否清除全局设置成功:如果没有出现user和email,那就代表全局设置清除成功。

1.2 生成SSH公钥和私钥

ssh-keygen命令中指定私钥名称后,会同时生成是一对SSH公钥和私钥,带有.pub后缀的是公钥。
例如,gitee_id_rsa就是私钥,gitee_id_rsa.pub就是公钥。

1、私钥gitee_id_rsa位置在config文件中配置,由开发者手动ssh-keygen命令执行生成后,存放在本地机器~/.ssh 目录【C:\Users\用户名\.ssh】目录中。私钥是用户的身份证,唯一识别用户,小心保管,不要泄露。

2、公钥gitee_id_rsa.pub配置到对应的代码托管平台(例如GitHub&Gitee&Gitlab&极狐(JihuLab)中。

3、提交代码时,通过校验对应的SSH公私钥,确认用户身份和提交的平台。

生成SSH公钥和私钥

【此处邮箱123456@qq.com不是默认,要修改成开发者个人配置的】
1、生成一个Gitee用的SSH-Key。
ssh-keygen -t rsa -C123456@qq.com-f ~/.ssh/gitee_id_rsa2、生成一个GitHub用的SSH-Key。
ssh-keygen -t rsa -C123456@qq.com-f ~/.ssh/github_id_rsa3、生成一个GitLab用的SSH-Key。
ssh-keygen -t rsa -C '123456@qq.com' -f ~/.ssh/gitlab_en_id_rsa4、生成一个极狐(JihuLab)用的SSH-Key
ssh-keygen -t rsa -C '123456@qq.com' -f ~/.ssh/gitlab_id_rsa注意输入生成SSH-key指令后,需要按回车3次,表示empty,即“空”,“空”代表没有密码。

ssh-keygen命令中的rsa一种生成密钥的算法,也可以根据需求更换其他算法生成 ssh key
例如ssh-keygen -t ed25519 -C "your@example.email" 这里使用的就是ed25519算法, 之后到对应平台重新添加公钥即可

1.3 生成GitLab的SSH公私钥的过程截图(其他平台把ssh-keygen命令更换即可)

在这里插入图片描述

1.4 私钥gitee_id_rsa与公钥gitee_id_rsa.pub的内容

私钥gitee_id_rsa
在这里插入图片描述
公钥gitee_id_rsa.pub
在这里插入图片描述

1.5 GitHub&Gitee&Gitlab&极狐(JihuLab)最后生成的SSH公钥和私钥

在这里插入图片描述
同理,GitHub、Gitee、极狐(JihuLab)也是重复上述同样的过程更换对应平台的ssh-keygen命令即可,此处不再赘述。

GitHubGitee对应过程,见我这篇文章中的:Git同时配置Gitee和GitHub两个不同的SSH-Key 。

二、 指定GitHub&Gitee&Gitlab&极狐的config私钥配置文件

因为是同时配置GitHub&Gitee&Gitlab&极狐(JihuLab)SSH公私钥,所以和只单独配置一个平台有所不同,为了避免混淆不同平台的SSH公私钥,需要在 ~/.ssh 目录【即C:\Users\用户名\.ssh目录】下新建一个config文件,添加如下内容(其中HostHostName填写git服务器的域名IdentityFile指定私钥的路径

# github
# ssh -T git@github.com
Host github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/github_id_rsa#2023-3-3 00:57:06
# gitee
# ssh -T git@gitee.com
Host gitee.com
HostName gitee.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/gitee_id_rsa#极狐第一种
#2023-4-5 22:37:31  jihulab
#ssh -T git@gitlab.cn
Host gitlab.cn
Hostname altssh.jihulab.com
User git
Port 443
PreferredAuthentications publickey
IdentityFile ~/.ssh/gitlab_id_rsa#极狐第二种
#2023-4-5 22:37:31  jihulab
#ssh -T git@jihulab.com
Host jihulab.com
Hostname altssh.jihulab.com
User git
Port 443
PreferredAuthentications publickey
IdentityFile ~/.ssh/gitlab_id_rsa#2023-4-6 01:00:05
#ssh -T git@gitlab.com
#gitlab 
Host     gitlab.com
HostName gitlab.com
#User git
#Port 443
PreferredAuthentications publickey
IdentityFile ~/.ssh/gitlab_en_id_rsa

三、添加对应的公钥到GitHub&Gitee&Gitlab&极狐(JihuLab)。(添加时会让你输入密码认证)

GitHubGitee添加对应的公钥的过程,见我这篇文章:Git同时配置Gitee和GitHub两个不同的SSH-Key 二、生成SSH公钥-4、添加对应的公钥到Gitee和GitHub。(添加时会让你输入密码认证)

3.1 Gitee中配置公钥gitee_id_rsa.pub

//查看生成的Gitee公钥gitee_id_rsa.pub,复制Gitee公钥gitee_id_rsa.pub
//或者直接去C:\Users\用户名\.ssh目录下直接用文本编辑器打开Gitee公钥gitee_id_rsa.pub,复制Gitee公钥gitee_id_rsa.pub的内容
cat  ~/.ssh/gitee_id_rsa.pub

复制该Gitee公钥gitee_id_rsa.pub:
在这里插入图片描述
点击账号设置
在这里插入图片描述
在这里插入图片描述

添写标题Gitee公钥gitee_id_rsa.pub内容后点击确定,后输入密码认证
在这里插入图片描述
在这里插入图片描述
添加成功
在这里插入图片描述

3.2 GitHub中配置公钥github_id_rsa.pub

//查看生成的GitHub公钥github_id_rsa.pub,复制GitHub公钥github_id_rsa.pub
cat  ~/.ssh/github_id_rsa.pub

点击Settings
在这里插入图片描述
点击New SSH Key
在这里插入图片描述
输入标题&复制粘贴公钥github_id_rsa.pub的内容&点击Add SSH Key
在这里插入图片描述

3.3 Gitlab中配置公钥gitlab_en_id_rsa.pub

//查看生成的Gitlab公钥gitlab_en_id_rsa.pub,复制Gitlab公钥gitlab_en_id_rsa.pub
cat  ~/.ssh/gitlab_en_id_rsa.pub

点击Preferences
在这里插入图片描述
在这里插入图片描述

点击SSH Keys
在这里插入图片描述
点击Add new key
在这里插入图片描述
填写 Gitlab公钥gitlab_en_id_rsa.pub相关信息后点击Add key
在这里插入图片描述

3.4 极狐(JihuLab)中配置公钥gitlab_id_rsa.pub

//查看生成的极狐(JihuLab)公钥gitlab_id_rsa.pub,复制极狐(JihuLab)公钥gitlab_id_rsa.pub
cat  ~/.ssh/gitlab_id_rsa.pub

点击偏好设置
在这里插入图片描述
点击SSH密钥
在这里插入图片描述
点击添加新密钥
在这里插入图片描述
填写密钥-标题-使用类型-到期时间等信息后-点击添加密钥

在这里插入图片描述

四、检测是否配置成功

4.1 检测命令

首次使用,会出现Are you sure you want to continue connecting(yes/no/[fingerprint] ?时 输入yes。【表示确认添加主机到可信任列表】

//检测GitHub
ssh -T git@github.com//检测gitee
ssh -T git@gitee.com//检测极狐(JihuLab)【中国代理商运营的Gitlab】
ssh -T git@gitlab.cn
或
ssh -T git@jihulab.com//检测Gitlab
ssh -T git@gitlab.com

4.2 检测命令执行成功截图

在这里插入图片描述
在这里插入图片描述

五、Git的SSH与HTTPS方式的命令行入门教程

:SSH的git@gitee.com:djcking/myapplication01.git和HTTPShttps://gitee.com/djcking/myapplication01.git直接从仓库中点击复制粘贴使用即可,以哪种方式配置,就复制使用哪一种。

5.1 SSH(配合上面的教程使用)

Git全局设置

git config --global user.name "GiHub用户名"
git config --global user.email "GitHub邮箱"
a:还没有git仓库,创建 git 仓库(此处以myapplication01仓库为例):
//1-创建myapplication01仓库
mkdir myapplication01//2-进入myapplication01
cd myapplication01//3-初始化仓库
git init //3-创建README.md文件
touch README.md//4-add README.md
git add README.md//5-commit
git commit -m "first commit"//6-绑定远端仓库
git remote add origin git@gitee.com:djcking/myapplication01.git//7-推送到远端origin的master分支
git push -u origin "master"
或者
git push -u origin main 
【因为GitHub之前的默认分支一直就是master,但2020年10月后GitHub宣布:新建项目的默认分支将从
master逐步改为main。】b:已有git仓库://1-进入已经存在的git仓库(此处以myapplication01仓库为例)
//cd existing_git_repo
cd myapplication01//2-绑定远端仓库
git remote add origin git@gitee.com:djcking/myapplication01.git3-推送到远端origin的master分支
git push -u origin "master"
或者
git push -u origin main 
【因为GitHub之前的默认分支一直就是master,但2020年10月后GitHub宣布:新建项目的默认分支将从
master逐步改为main。】

更简单的使用方式:直接建远端仓库后clone到本地无需初始化(git init)和绑定仓库(git remote add origin),可以直接使用。

5.2 HTTPS(需以HTTPS方式配置使用Git)

Git全局设置

git config --global user.name "GiHub用户名"
git config --global user.email "GitHub邮箱"
a:还没有git仓库,创建 git 仓库(此处以myapplication01仓库为例):
//1-创建myapplication01仓库
mkdir myapplication01//2-进入myapplication01
cd myapplication01//3-初始化仓库
git init //3-创建README.md文件
touch README.md//4-add README.md
git add README.md//5-commit
git commit -m "first commit"//6-绑定远端仓库
git remote add origin https://gitee.com/djcking/myapplication01.git//7-推送到远端origin的master分支
git push -u origin "master"
或者
git push -u origin main 
【因为GitHub之前的默认分支一直就是master,但2020年10月后GitHub宣布:新建项目的默认分支将从
master逐步改为main。】b:已有git仓库:
//1-进入已经存在的git仓库(此处以myapplication01仓库为例)
//cd existing_git_repo
cd myapplication01//2-绑定远端仓库
git remote add origin https://gitee.com/djcking/myapplication01.git//3-推送到远端origin的master分支
git push -u origin "master"
或者
git push -u origin main 
【因为GitHub之前的默认分支一直就是master,但2020年10月后GitHub宣布:新建项目的默认分支将从
master逐步改为main。】

更简单的使用方式:直接建远端仓库后clone到本地无需初始化(git init)和绑定仓库(git remote add origin),可以直接使用。

六、Git命令行方式增加文件README.md(SSH)

未推送README.md的Gitee仓库MyApplication
在这里插入图片描述
在这里插入图片描述
往Gitee仓库MyApplication推送README.md后的的命令截图
在这里插入图片描述
推送README.md后Gitee仓库MyApplication
在这里插入图片描述

6.1 创建README.md前

在这里插入图片描述

6.2 touch README.md

在这里插入图片描述

6.3 git add README.md

git add 命令可将该文件的修改添加到暂存区。
通过运行 git add 命令,你可以告诉 Git 哪些文件的修改应该包含在下一次提交(commit)中。
将文件从workdir(工作目录)中添加到缓存区index(即暂存区stage)(出现红色感叹号)//*表示所有文件 
git add *//.表示当前目录下的所有文件 
git add .//也可以直接添加目录git add 目录名//添加一个或多个文件 
git add 文件1名 文件2名//强制提交某个文件(不管.gitignore是否包含了这个文件)
//.gitignore文件是用来配置  忽略不需要上传的文件  的文件
git add -f 文件名

在这里插入图片描述

6.4 git commit -m “add README.md”

git commit - m代码提交信息

代码提交信息相当于代码中的注释

执行完,会根据摘要算法(SHA1)生成一个不重复的40位提交ID字符串,默认只会显示7位唯一识别你的每一次提交,这里是731adec
在这里插入图片描述

6.5 git push -u origin “master”

这里之前第一次初始化仓库时,第6步,已经绑定过仓库,所以这里无需再绑定无需再执行git remote add origin git@gitee.com:djcking/myapplication01.git直接push到远端仓库

注意
1、这里的-u 参数,一般在第一次 push的时候使用,相当于建立某个本地分支(这里是master分支)对应的远端分支(orgin/master)的第一次联系。后面再push这个本地分支到远端仓库,就无需再加-u参数,直接执行git push origin "master"

2、如果这个分支,是git pull下来的,修改后再push,也无需再加-u参数,直接执行git push -u origin "master",因为之前已经建立过这个本地分支与对应的远端分支之间的第一次联系pull到本地workspace,联系也会存在,后面再push这个本地分支到远端仓库,就无需再加-u参数,直接执行git push origin "master"

3、(来自《GitHub入门与实践》中的一些说明)
在这里插入图片描述

git push -u origin master
或者
git push -u origin main 
【因为GitHub之前的默认分支一直就是master,但2020年10月后GitHub宣布:新建项目的默认分支将从
master逐步改为main。】

在这里插入图片描述
推送README.md后Gitee仓库MyApplication
在这里插入图片描述
本地仓库master远端仓库origin\master

命令行下查看:

//查看本地分支
git branch //查看所有分支(包含本地和远端)
git branch -a

在这里插入图片描述
图形化IDE下查看:
在这里插入图片描述

七、附自己写的其他相关博客

使用git命令行方式提交项目到GitHub
master分支与main分支的问题
5步将 GitHub 默认分支从 Master 更改为 Main(转载)

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

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

相关文章

计算机竞赛 大数据疫情分析及可视化系统

文章目录 0 前言2 开发简介3 数据集4 实现技术4.1 系统架构4.2 开发环境4.3 疫情地图4.3.1 填充图(Choropleth maps)4.3.2 气泡图 4.4 全国疫情实时追踪4.6 其他页面 5 关键代码最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 大数据疫…

vue应用全局音乐(自动播放)

这里写自定义目录标题 1.从同事哪里白嫖过来的&#xff0c;主要是jq写的&#xff0c;需要单独引入jq cdn 2.打开index.html 将代码放到里面 <!DOCTYPE html> <html><head><meta charset"utf-8" /><metaname"viewport"content…

软件设计——面向对象的七大原则

前言 软件设计模式和设计原则是成为一个软件架构师的基本功&#xff0c;较好的理解这些基础知识无疑是十分重要的。在这篇文章中荔枝将会比较详细梳理一下面向对象的七大原则&#xff0c;大家可以先看看这部分内容再去学习设计模式会比较好哈哈哈哈~~~ 在软件开发中&#xff0c…

Linux RPM JDK升级

以JDK1.8升级JDK17为例 上传jdk17安装包到linux服务器 检查jdk版本 rpm -qa|grep jdk 删除查询到的jdk rpm -e --nodeps jdk1.8-1.8.0_201-fcs.x86_64 删除完毕后安装新的jdk rpm -ivh jdk-17_linux-x64_bin.rpm 检查jdk版本 java -version

深入探讨基于python的SGBM参数影响效果

什么是SGBM SGBM&#xff08;Semi-Global Block Matching&#xff09;是一种用于计算双目视觉中视差&#xff08;disparity&#xff09;的半全局匹配算法&#xff0c;在OpenCV中的实现为semi-global block matching&#xff08;SGBM&#xff09;。它是基于全局匹配算法和局部匹…

Matlab 2016安装MinGW-w64-4.9.2

Matlab 2016安装MinGW-w64-4.9.2 项目需求&#xff1a;需要将matlab中的.m文件编译为cpp文件 .dll .h .lib。 我相信大家在对matlab2016安装MinGW-w64出现了各种各样的问题。如&#xff1a;4.9.2安装失败&#xff1b;安装了其他版本但是matlab检测不到&#xff0c;或者其他各种…

Matlab之DICOM(数字图像和通信医学)格式图像数据读取函数dicomread

一、DICOM是什么&#xff1f; DICOM是数字图像和通信医学格式的图像数据&#xff0c;在MATLAB中&#xff0c;可以使用dicomread函数读取DICOM格式的图像数据。 二、dicomread函数 使用方法如下&#xff1a; imageData dicomread(filename);其中&#xff0c;filename表示DI…

pdfjs解决ie浏览器预览pdf问题

pdfjs是一个js库&#xff0c;可以将pdf文件用canvas重新绘制&#xff0c;从而无需借助pdf读取插件就可以直接预览。 目前chrome内核的浏览器已内置pdf读取插件&#xff0c;但ie浏览器还没有。而我们最近在做的一个项目使用对象是医院&#xff0c;使用的浏览器竟然还是ie。所以我…

基础秘钥、公钥、地址的熟悉指南

1. 地址 0基础漫画式阅读&#xff1a;https://www.cnblogs.com/charlesblc/p/6130433.html 清晰详细的地址生成解释&#xff1a;比特币&#xff1a;账户私钥、公钥、地址的生成 - kumata - 博客园 (cnblogs.com) 对原理更详细解释&#xff1a;区块链技术核心篇之二&#xff…

在微信小程序上怎么实现多门店管理功能

微信小程序已经成为连接线上与线下的重要工具&#xff0c;尤其对于拥有多家门店的企业来说&#xff0c;通过微信小程序可以实现多门店管理&#xff0c;提高管理效率和用户体验。下面&#xff0c;我将为大家详细介绍如何在微信小程序上实现多门店管理功能。 一、确定多门店管理功…

【网络教程】记一次使用Docker手动搭建BT宝塔面板的全过程(包含问题解决如:宝塔面板无法开启防火墙,ssh,nginx等)

文章目录 准备安装安装宝塔面板开启ssh和修改ssh的密码导出镜像问题解决宝塔面板无法开启防火墙无法启动ssh设置密码nginx安装失败设置开机启动相关服务准备 演示的系统环境:Ubuntu 22.04.3 LTS更新安装/升级docker到最新版本升级docker相关命令如下# 更新软件包列表并自动升级…

没有软件怎么管理固定资产

在当今数字化的世界中&#xff0c;我们已经习惯了使用各种软件来管理我们的日常生活和工作。然而&#xff0c;当我们面临一个看似简单的问题——如何管理固定资产时&#xff0c;我们可能会感到困惑。那么&#xff0c;如果没有软件&#xff0c;我们该如何进行资产管理呢&#xf…

文章生成器免费版

你是否曾经陷入文案创作的困扰中&#xff1f;是不是为了撰写出优质的文章而煞费苦心&#xff1f;那么&#xff0c;如果我告诉你&#xff0c;现在有一种神奇的工具&#xff0c;可以为你解决这个问题&#xff0c;让你轻松地生成文章&#xff0c;你会不会感到兴奋呢&#xff1f;让…

Unity实现用WASD控制一个物体前后左右移动-小白课程01

1 根据业务逻辑搭建场景 02 根据业务写代码 using System.Collections; using System.Collections.Generic; using UnityEngine;//实现让被挂在的物体往前移动 //按下W键往前移动&#xff0c;按下S键往后移动 public class RoleMove : MonoBehaviour { public float myspe…

数据在内存中的存储——练习1

题目&#xff1a; int main() {int a[4] { 1,2,3,4 };int* ptrl (int*)(&a 1);int* ptr2 (int*)((int)a 1);printf("%x,%x"&#xff0c;ptr1[-1], *ptr2);return 0; } 思路分析&#xff1a; int* ptrl (int*)(&a 1); ptr1[-1] &a表示的是整个数…

winscope怎么实现user版本上导出方案设计探讨-千里马android framework车载车机手机系统开发

背景 在马哥给讲解怎么用winscope来分析各种闪黑&#xff0c;黑屏等问题后&#xff0c;很多买课的同学都开始使用这个工具用于实际公司的项目了&#xff0c;但是很多同学又开始发现有一个问题&#xff0c;那就发现在user版本的手机设备上发现无法抓取相关的winscope&#xff0…

Qt MinGW / MSVC

MinGW/MSVC的关系 MinGW / MSVC.dll / .lib / .a 的关系 MinGW / MSVC Qt 中有两种方式编译&#xff1a;一种是MinGW &#xff0c;另一种MSVC&#xff0c;是两种不同的编译器。 MinGW(Minimalist GNUfor Windows)&#xff0c;它是一个可自由使用和自由发布的Windows特定头文件…

PMP-项目启动过程组的重要性

一、什么是项目启动过程组 启动过程组包括定义一个新项目或现有项目的一个新阶段&#xff0c;授权开始该项目或阶段的一组过程。启动过程组的目的是&#xff1a;协调相关方期望与项目目的&#xff0c;告知相关方项目范围和目标&#xff0c;并商讨他们对项目及相关阶段的参与将如…

springboot导出(POI)

POI官方文档 引入依赖 <!--POI--><dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>4.1.2</version></dependency><dependency><groupId>org.apache.poi</groupId&…

Redis——其他数据类型介绍

概要介绍 Redis中有10种不同的数据类型。之前的blog中介绍了Redis中常见的五大数据类型&#xff1a;String&#xff0c;List&#xff0c;Hash&#xff0c;Set&#xff0c;ZSet。而Redis中还有许多其他的数据类型&#xff0c;一般在特定的场景中使用 Stream 首先介绍一下什么…