赞
踩
GitHub、GitLab、Gitee(最近还多了个阿里系的‘codeup’的代码仓库)是目前最流行的代码托管平台,前者常常用于个人代码托管,而后者常用于企业代码托管。因此在实际工作中,我们通常会在同一台电脑设备上,使用这两个平台进行代码托管。
SSH-Key是这两个平台的密钥认证方式,为自己的电脑添加密钥认证,可以更加简单、高效、安全地完成代码托管的工作。
下面将详细讲解如何在同一台电脑上为两个平台添加不同的SSH-Key,并且管理这些密钥。
git -- version
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
这两个命令都是用于生成 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 密钥对。
输入cat ~/.ssh/ssh
文件名 | clip ,例如cat ~/.ssh/gitlab_id_rsa.pub | clip
,复制ssh key。
windows用户直接用记事本打开gitlab_id-rsa.pub
,复制SSH-Key
。
linux/macos用户可以使用cat 或者less来查看
复制好对应平台的密钥后,就可以到对应平台的SSH-Key中添加密钥了
ssh -T git@github.com
正常情况下,单用户单仓库的会显示跟我下面的基本一样的输出。主要是看 Hi xxxx! You
ve successfully authenticated。。就可以了。
我下图的命令执行为什么跟上方介绍的不以昂,是应为我配置了多仓库多账号管理。下面会介绍。`
如图所示GitHub的密钥认证成功,Gitlab密钥认证的测试方式同上。
需要注意的是,由于Gitlab是私有代码仓库,测试时需要在git@后面输入Gitlab所在ip地址或域名,才能正确测试。
当你在同一台电脑下生成多个密钥时,你就需要对多个密钥进行认证管理,否则你的密钥将无法正常使用。
具体步骤如下。
注意⚠️:注册和生成ssh-key就跟单用户一样
首先在./ssh/文件夹下手动config文件,配置密钥信息。
# 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 代表 认证文件
config文件就是管理的配置文件,你配置好了,就很方便的切换你使用的git账号和仓库
地址:https://help.gitee.com/base/account/SSH%E5%85%AC%E9%92%A5%E8%AE%BE%E7%BD%AE
gitee基本符合国人的需求,完完整整的呈现了所需的步骤介绍。
完成config的配置后,可以通过ssh -T git@,测试不同平台的密钥是否能连接成功。
GitHub测试
Gitee测试
最后附上常用的Git命令,供大家参考使用
检出仓库:$ 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]
查看本地分支:$ 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]
查看当前项目下所有文的状态:$ git status
(.)点表示当前目录下的所有内容,交给git管理:$ git add .
对你更新或修改了哪些内容做一个描述:$ git commit –m”new natter ”
查看你当前项目远程连接的是哪个仓库地址:$ git remote -v
将本地的项目提交到远程仓库中:$ git push origin master
将远程仓库项目拉到本地项目中:$ git pull origin master
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。