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

本文主要是介绍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等平台通讯的时候,使用安全连接配置的详细过程

最新文章(2023-9-19 20:58:21):解决ssh:connect to host github.com port 22: Connection timed out与kex_exchange_identification

一、生成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命令更换即可)

在这里插入图片描述

注意:如果在此处设置了密码,则在 4.1 检测命令中输入ssh -t命令 检测配置是否成功时,也需要输入此密码才能检测,所以此口令密码要记住,否则就完蛋了。

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指定私钥的路径

config中配置时,如果没有指定端口,默认使用22端口,进行SSH连接,也可以修改成443端口#符号注释的意思,不起实际作用,方便阅读理解

注意:GitHub端口 443 的主机名Hostnamessh.github.com,而不是 github.com

# github
# ssh -T git@github.com
Port 443   
Hostname ssh.github.com
Host github.com
Hostname ssh.github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/github_id_rsa

此处我的config文件,参考时需要根据个人机器实际配置情况,进行部分修改,例如私钥位置名称IdentityFile

# github
# ssh -T git@github.com
#Port 443   
#Hostname ssh.github.comUser git
#Port 22  此处注释,默认也使用22端口
Host github.comHostname github.comPreferredAuthentications publickeyIdentityFile ~/.ssh/github_id_rsa#2023-3-3 00:57:06
# gitee
#ssh-keygen -t rsa -C123456@qq.com-f ~/.ssh/gitee_id_rsa
# ssh -T git@gitee.com
Host gitee.comHostname gitee.comPreferredAuthentications publickeyIdentityFile ~/.ssh/gitee_id_rsa#极狐第一种
#2023-4-5 22:37:31  jihulab
#ssh-keygen -t rsa -C '123456@qq.com' -f ~/.ssh/gitlab_id_rsa
#ssh -T git@gitlab.cn
Host gitlab.cnHostname altssh.jihulab.comUser gitPort 443PreferredAuthentications publickeyIdentityFile ~/.ssh/gitlab_id_rsa#极狐第二种
#2023-4-5 22:37:31  jihulab
#ssh-keygen -t rsa -C '123456@qq.com' -f ~/.ssh/gitlab_id_rsa
#ssh -T git@jihulab.com
Host jihulab.comHostname altssh.jihulab.comUser gitPort 443PreferredAuthentications publickeyIdentityFile ~/.ssh/gitlab_id_rsa#2023-4-6 01:00:05
#ssh-keygen -t rsa -C '123456@qq.com' -f ~/.ssh/gitlab_en_id_rsa
#ssh -T git@gitlab.com
#gitlab 
Host gitlab.comHostname gitlab.com#User git#Port 443PreferredAuthentications publickeyIdentityFile ~/.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分支,带-u参数
git push -u origin "master"  或者 git push -u origin master
或者
git push -u origin main 
【因为GitHub之前的默认分支一直就是master,但2020年10月后GitHub宣布:新建项目的默认分支将从
master逐步改为main。】//后续再推送,不需要再带-u参数
git push  origin "master" 或者 git push  origin master
或者
git push  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分支,带-u参数
git push -u origin "master"   或者 git push -u origin master
或者
git push -u origin main 
【因为GitHub之前的默认分支一直就是master,但2020年10月后GitHub宣布:新建项目的默认分支将从
master逐步改为main。】//后续再推送,不需要再带-u参数
git push  origin "master" 或者 git push  origin master
或者
git push  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分支,带-u参数
git push -u origin "master"  或者 git push -u origin master
或者
git push -u origin main 
【因为GitHub之前的默认分支一直就是master,但2020年10月后GitHub宣布:新建项目的默认分支将从
master逐步改为main。】//后续再推送,不需要再带-u参数
git push  origin "master" 或者 git push  origin master
或者
git push  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分支,带-u参数
git push -u origin "master"  或者 git push -u origin master
或者
git push -u origin main 
【因为GitHub之前的默认分支一直就是master,但2020年10月后GitHub宣布:新建项目的默认分支将从
master逐步改为main。】//后续再推送,不需要再带-u参数
git push  origin "master" 或者 git push  origin master
或者
git push  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” 首次推送带-u参数

这里之前第一次初始化仓库时,第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 origin "master",因为之前已经建立过这个本地分支与对应的远端分支之间的第一次联系pull到本地workspace,联系也会存在,后面再push这个本地分支到远端仓库,就无需再加-u参数,直接执行git push origin "master"

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

//首次推送到远端origin的master分支,带-u参数
git push -u origin "master" 或者 git push -u origin master
或者
git push -u origin main 
【因为GitHub之前的默认分支一直就是master,但2020年10月后GitHub宣布:新建项目的默认分支将从
master逐步改为main。】//后续再推送,不需要再带-u参数
git push  origin "master" 或者 git push  origin master
或者
git push  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(转载)

参考
测试 SSH 连接
在 HTTPS 端口使用 SSH

这篇关于GitHubGiteeGitlab极狐(JihuLab)同时生成并配置和检测不同SSH公私钥详细过程的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

浅析Spring Security认证过程

类图 为了方便理解Spring Security认证流程,特意画了如下的类图,包含相关的核心认证类 概述 核心验证器 AuthenticationManager 该对象提供了认证方法的入口,接收一个Authentiaton对象作为参数; public interface AuthenticationManager {Authentication authenticate(Authenti

Zookeeper安装和配置说明

一、Zookeeper的搭建方式 Zookeeper安装方式有三种,单机模式和集群模式以及伪集群模式。 ■ 单机模式:Zookeeper只运行在一台服务器上,适合测试环境; ■ 伪集群模式:就是在一台物理机上运行多个Zookeeper 实例; ■ 集群模式:Zookeeper运行于一个集群上,适合生产环境,这个计算机集群被称为一个“集合体”(ensemble) Zookeeper通过复制来实现

CentOS7安装配置mysql5.7 tar免安装版

一、CentOS7.4系统自带mariadb # 查看系统自带的Mariadb[root@localhost~]# rpm -qa|grep mariadbmariadb-libs-5.5.44-2.el7.centos.x86_64# 卸载系统自带的Mariadb[root@localhost ~]# rpm -e --nodeps mariadb-libs-5.5.44-2.el7

hadoop开启回收站配置

开启回收站功能,可以将删除的文件在不超时的情况下,恢复原数据,起到防止误删除、备份等作用。 开启回收站功能参数说明 (1)默认值fs.trash.interval = 0,0表示禁用回收站;其他值表示设置文件的存活时间。 (2)默认值fs.trash.checkpoint.interval = 0,检查回收站的间隔时间。如果该值为0,则该值设置和fs.trash.interval的参数值相等。

NameNode内存生产配置

Hadoop2.x 系列,配置 NameNode 内存 NameNode 内存默认 2000m ,如果服务器内存 4G , NameNode 内存可以配置 3g 。在 hadoop-env.sh 文件中配置如下。 HADOOP_NAMENODE_OPTS=-Xmx3072m Hadoop3.x 系列,配置 Nam

作业提交过程之HDFSMapReduce

作业提交全过程详解 (1)作业提交 第1步:Client调用job.waitForCompletion方法,向整个集群提交MapReduce作业。 第2步:Client向RM申请一个作业id。 第3步:RM给Client返回该job资源的提交路径和作业id。 第4步:Client提交jar包、切片信息和配置文件到指定的资源提交路径。 第5步:Client提交完资源后,向RM申请运行MrAp

AI一键生成 PPT

AI一键生成 PPT 操作步骤 作为一名打工人,是不是经常需要制作各种PPT来分享我的生活和想法。但是,你们知道,有时候灵感来了,时间却不够用了!😩直到我发现了Kimi AI——一个能够自动生成PPT的神奇助手!🌟 什么是Kimi? 一款月之暗面科技有限公司开发的AI办公工具,帮助用户快速生成高质量的演示文稿。 无论你是职场人士、学生还是教师,Kimi都能够为你的办公文

wolfSSL参数设置或配置项解释

1. wolfCrypt Only 解释:wolfCrypt是一个开源的、轻量级的、可移植的加密库,支持多种加密算法和协议。选择“wolfCrypt Only”意味着系统或应用将仅使用wolfCrypt库进行加密操作,而不依赖其他加密库。 2. DTLS Support 解释:DTLS(Datagram Transport Layer Security)是一种基于UDP的安全协议,提供类似于

2. c#从不同cs的文件调用函数

1.文件目录如下: 2. Program.cs文件的主函数如下 using System;using System.Collections.Generic;using System.Linq;using System.Threading.Tasks;using System.Windows.Forms;namespace datasAnalysis{internal static

综合安防管理平台LntonAIServer视频监控汇聚抖动检测算法优势

LntonAIServer视频质量诊断功能中的抖动检测是一个专门针对视频稳定性进行分析的功能。抖动通常是指视频帧之间的不必要运动,这种运动可能是由于摄像机的移动、传输中的错误或编解码问题导致的。抖动检测对于确保视频内容的平滑性和观看体验至关重要。 优势 1. 提高图像质量 - 清晰度提升:减少抖动,提高图像的清晰度和细节表现力,使得监控画面更加真实可信。 - 细节增强:在低光条件下,抖