当前位置:   article > 正文

为GitHub、Gitlab账号同时添加、管理多个SSH-Key_gitlab和github ssh key

gitlab和github ssh key

GitHub、GitLab、Gitee(最近还多了个阿里系的‘codeup’的代码仓库)是目前最流行的代码托管平台,前者常常用于个人代码托管,而后者常用于企业代码托管。因此在实际工作中,我们通常会在同一台电脑设备上,使用这两个平台进行代码托管。
SSH-Key是这两个平台的密钥认证方式,为自己的电脑添加密钥认证,可以更加简单、高效、安全地完成代码托管的工作。
下面将详细讲解如何在同一台电脑上为两个平台添加不同的SSH-Key,并且管理这些密钥。

单用户单仓库

  1. 注册账号
    用自己的邮箱注册GitHub、Gitlab账号,注册过程忽略。
    image.png
    image.png
  2. 下载Git
    Git安装包网址
    image.png
    进入网站下载自己电脑对应的版本、直接安装即可。
    安装完成后,在CMD中输入下面的代码,查看Git的版本号。
git -- version
  • 1

image.png

  1. 生成SSH-Key
    打开GitBash(Git安装成功后会自动在鼠标右键添C加GitBash)输入以下命令生成密钥。
ssh-keygen -t ed25519 -C "email@example.com"  -f ~/.ssh/gitlab_id_rsa

ssh-keygen -o -t rsa -b 4096 -C "email@example.com" -f ~/.ssh/gitlab_id_rsa
  • 1
  • 2
  • 3
这两个命令都是用于生成 SSH 密钥对的。下面是每个命令中使用的参数的含义:

1. `ssh-keygen -t ed25519 -C "email@example.com" -f ~/.ssh/gitlab_id_rsa`
   - `-t ed25519`:指定生成密钥对的算法类型为 ed25519。ed25519 是一种非对称加密算法,适用于生成安全性较高的密钥对。
   - `-C "email@example.com"`:指定注释,通常是用来标识该密钥对的所有者或用途。在这个例子中,注释是指示电子邮件地址为 "email@example.com"。
   - `-f ~/.ssh/gitlab_id_rsa`:指定生成的密钥对的文件路径和名称。在这个例子中,生成的私钥文件为 "~/.ssh/gitlab_id_rsa",公钥文件则会自动命名为 "~/.ssh/gitlab_id_rsa.pub"。

2. `ssh-keygen -o -t rsa -b 4096 -C "email@example.com" -f ~/.ssh/gitlab_id_rsa`
   - `-o`:指定以 OpenSSH 格式输出生成的密钥对。OpenSSH 格式支持更多功能,如加密算法选择和密钥扩展。
   - `-t rsa`:指定生成密钥对的算法类型为 RSA。RSA 是一种非对称加密算法,也是最常用的算法之一。
   - `-b 4096`:指定密钥的位数,4096 表示生成的密钥长度为 4096 位。一般来说,密钥位数越长,安全性越高,但同时也会增加计算负担。
   - `-C "email@example.com"`:同上一个命令的含义,指定注释,标识密钥对的所有者或用途。
   - `-f ~/.ssh/gitlab_id_rsa`:同上一个命令的含义,指定生成的密钥对的文件路径和名称。

这些参数可以根据实际需要进行调整,根据你的要求来生成适合你使用场景的 SSH 密钥对。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

image.png

  1. 添加SSH-Key
    复制密钥的方式有两种。

输入cat ~/.ssh/ssh文件名 | clip ,例如cat ~/.ssh/gitlab_id_rsa.pub | clip,复制ssh key。

windows用户直接用记事本打开gitlab_id-rsa.pub,复制SSH-Key
linux/macos用户可以使用cat 或者less来查看
image.png
复制好对应平台的密钥后,就可以到对应平台的SSH-Key中添加密钥了
image.png

  1. 测试密钥
    添加完SSH-Key后,我们需要测试密钥是否可用,以GitHub为例,在GitBash中输入以下的命令。
ssh -T git@github.com
  • 1

正常情况下,单用户单仓库的会显示跟我下面的基本一样的输出。主要是看 Hi xxxx! Youve successfully authenticated。。就可以了。 我下图的命令执行为什么跟上方介绍的不以昂,是应为我配置了多仓库多账号管理。下面会介绍。`
image.png
如图所示GitHub的密钥认证成功,Gitlab密钥认证的测试方式同上。

需要注意的是,由于Gitlab是私有代码仓库,测试时需要在git@后面输入Gitlab所在ip地址或域名,才能正确测试。

多个密钥管理

当你在同一台电脑下生成多个密钥时,你就需要对多个密钥进行认证管理,否则你的密钥将无法正常使用。
具体步骤如下。

注意⚠️:注册和生成ssh-key就跟单用户一样

1 添加config文件

首先在./ssh/文件夹下手动config文件,配置密钥信息。
image.png

image.png

# gitlab
Host gitlab.com
HostName gitlab.com
User root
IdentityFile ~/.ssh/id_rsa_gitlib

# github
Host github.com
HostName github.com
User root
IdentityFile ~/.ssh/id_rsa_github

# gitee
Host gitee.com
HostName gitee.com
User root
IdentityFile ~/.ssh/id_rsa_gitee
Host 代表 关键词
HostName 代表 主机地址
User 代表 用户名
IdentityFile 代表 认证文件
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

config文件就是管理的配置文件,你配置好了,就很方便的切换你使用的git账号和仓库

3 帮助文档

地址:https://help.gitee.com/base/account/SSH%E5%85%AC%E9%92%A5%E8%AE%BE%E7%BD%AE
gitee基本符合国人的需求,完完整整的呈现了所需的步骤介绍。
image.png

多密钥认证测试

完成config的配置后,可以通过ssh -T git@,测试不同平台的密钥是否能连接成功。
GitHub测试
image.png
Gitee测试
image.png

Git常用命令

最后附上常用的Git命令,供大家参考使用

  1. 远程仓库相关命令
检出仓库:$ git clone [git url]
查看远程仓库:$ git remote -v
添加远程仓库:$ git remote add [name] [url]
删除远程仓库:$ git remote rm [name]
修改远程仓库:$ git remote set-url --push[name][newUrl]
拉取远程仓库:$ git pull [remoteName] [localBranchName]
推送远程仓库:$ git push [remoteName] [localBranchName]

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  1. 分支(branch)操作相关命令
查看本地分支:$ git branch
查看远程分支:$ git branch -r

创建本地分支:$ git branch [name] ----注意新分支创建后不会自动切换为当前分支
切换分支:$ git checkout [name]
创建新分支并立即切换到新分支:$ git checkout -b [name]

创建远程分支(本地分支push到远程):$ git push origin [name]
合并分支:$ git merge [name] ----将名称为[name]的分支与当前分支合并

删除本地分支:$ git branch -d [name] 
删除远程分支:$ git push origin -d [name]

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  1. 本地项目连接远程仓库
查看当前项目下所有文的状态:$ git status

(.)点表示当前目录下的所有内容,交给git管理:$ git add .

对你更新或修改了哪些内容做一个描述:$ git commit –m”new natter ”

查看你当前项目远程连接的是哪个仓库地址:$ git remote -v 

将本地的项目提交到远程仓库中:$ git push origin master 

将远程仓库项目拉到本地项目中:$ git pull origin master

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

Git开发相关的一些操作以及分类

image.png

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/671335
推荐阅读
相关标签
  

闽ICP备14008679号