详解:为GitHub、Gitlab账号同时添加、管理多个SSH-Key

5,029 阅读3分钟

GitHubGitLab是目前最流行的代码托管平台,前者常常用于个人代码托管,而后者常用于企业代码托管。因此在实际工作中,我们通常会在同一台电脑设备上,使用这两个平台进行代码托管。

SSH-Key是这两个平台的密钥认证方式,为自己的电脑添加密钥认证,可以更加简单、高效、安全地完成代码托管的工作。

本文将详细讲解如何在同一台电脑上为两个平台添加不同的SSH-Key,并且管理这些密钥。

实例讲解

1. 注册账号

用自己的邮箱注册GitHubGitlab账号,注册过程忽略。

在这里插入图片描述

在这里插入图片描述

2. 下载Git

Git安装包网址

在这里插入图片描述

进入网站下载自己电脑对应的版本、直接安装即可。

安装完成后,在CMD中输入下面的代码,查看Git的版本号。

git -- version

在这里插入图片描述

3. 生成SSH-Key

打开GitBashGit安装成功后会自动在鼠标右键添加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

email@example.com 代表注册Gitlab账号时用的邮箱

-f 代表文件名

~/.ssh/ 代表ssh的文件路径

gitlab_id-rsa 代表ssh文件名(可以自定义)

在这里插入图片描述

在这里插入图片描述

到这里,我们就生成了一个Gitlab的密钥,GitHub密钥的生成方式同上。

4. 添加SSH-Key

复制密钥的方式有两种。

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

  2. 直接用记事本打开gitlab_id-rsa.pub,复制SSH-Key

复制好对应平台的密钥后,就可以到对应平台的SSH-Key中添加密钥了

在这里插入图片描述

在这里插入图片描述

5. 测试密钥

添加完SSH-Key后,我们需要测试密钥是否可用,以GitHub为例,在GitBash中输入以下的命令。

ssh -T git@github.com

在这里插入图片描述

如图所示GitHub的密钥认证成功,Gitlab密钥认证的测试方式同上。

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

6. 多个密钥管理

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

具体步骤如下。

6.1 添加config文件

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

在这里插入图片描述

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

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

Host 代表 关键词
HostName 代表 主机地址
User 代表 用户名
IdentityFile 代表 认证文件

6.2 添加密钥信任

完成配置,还需要对每个密钥添加信任,打开Git Bash 输入下面的指令。

eval $(ssh-agent -s)

ssh-add ~/.ssh/other_id_rsa

eval 代表 开启代理认证指令

ssh-add 代表 添加ssh文件认证

在这里插入图片描述

需要重点提醒,config文件主要用于管理密钥信息,并没有实际功能,不添加config文件直接为密钥添加信任也是可以的。

但是考虑到密钥信息的管理,强烈建议添加config文件,配置好密钥的信息。

6.3 gitlab官方示例

在这里插入图片描述

7. 多密钥认证测试

完成多秘钥认证后,通过ssh -T git@,测试不同平台的密钥是否能连接成功。

7.1 GitHub

在这里插入图片描述

7.2 Gitlab

在这里插入图片描述

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]

2. 分支(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]

3. 本地项目连接远程仓库

查看当前项目下所有文的状态:$ git status

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

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

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

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

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

结语

以上就是本文的全部内容了,感谢你的阅读,如果你有什么疑问或者建议,欢迎你随时留言,互相讨论。

最后,祝工作顺利,生活幸福。

在这里插入图片描述