详解:为GitHub、Gitlab账号同时添加、管理多个SSH-Key
GitHub
、GitLab
是目前最流行的代码托管平台,前者常常用于个人代码托管,而后者常用于企业代码托管。因此在实际工作中,我们通常会在同一台电脑设备上,使用这两个平台进行代码托管。
SSH-Key
是这两个平台的密钥认证方式,为自己的电脑添加密钥认证,可以更加简单、高效、安全地完成代码托管的工作。
本文将详细讲解如何在同一台电脑上为两个平台添加不同的SSH-Key
,并且管理这些密钥。
实例讲解
1. 注册账号
用自己的邮箱注册GitHub
、Gitlab
账号,注册过程忽略。


2. 下载Git

进入网站下载自己电脑对应的版本、直接安装即可。
安装完成后,在CMD
中输入下面的代码,查看Git
的版本号。
git -- version

3. 生成SSH-Key
打开GitBash
(Git
安装成功后会自动在鼠标右键添加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
复制密钥的方式有两种。
-
输入
cat ~/.ssh/ssh文件名 | clip
,例如cat ~/.ssh/gitlab_id_rsa.pub | clip
,复制ssh key。 -
直接用记事本打开
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
结语
以上就是本文的全部内容了,感谢你的阅读,如果你有什么疑问或者建议,欢迎你随时留言,互相讨论。
最后,祝工作顺利,生活幸福。

转载自:https://juejin.cn/post/6844904008163786765