一台服务器中配置多个git sshkey
2020-11-01 本文已影响0人
R_X
需求背景:GitHub上有两个项目,需要拉取到同一台服务器,并且都需要通过ssh的方式拉取
假设两个项目分别叫: proj1 和 proj2
一、分别生成 ssh key
# 先生成 proj1 的 sshkey
$ ssh-keygen -t rsa -C "888888@qq.com"
image.png
注意:键入该命令以后,会出现如上图所示的提示符,在
Enter file in which to save the key
这里输入proj1
。输入这个是为了便于区分,其实输入啥完全看你自己的爱好,但是当有多个sshkey时,一定要加以区分,否则默认的名称id_rsa, id_rsa.pub
会覆盖之前的。
密码可以为空,直接回车就好。建好以后,你会在 ~/.ssh
目录下发现两个文件:proj1、 proj1.pub
。
另一个项目也如此操作。
二、添加私钥
$ ssh-add -l
# 如果什么都没有,则执行:
$ ssh-add proj1
$ ssh-add proj2
$ ssh-add -l
# 会输出:
# 3072 SHA256:DDDDDDDDDDDDDDDDr867EyhG1JwiBY 1002853070@qq.com (RSA)
# 3072 SHA256:kSSSSSSSSSSSSScnZTTWuG21KRI 1002853070@qq.com (RSA)
#则表示添加成功
如果报错:Could not open a connection to your authentication agent
则执行:ssh-agent bash
即可
三、将生成的两个 项目的 公钥 放到GitHub上
这里就不赘述了
四、在 ~/.ssh 目录下添加 config 文件
# 输入一下内容:
Host github-proj1.com # 这里用于区分不同项目,也就是给 github.com 起个别名的意思
HostName github.com # 这里是你代码仓库的域名,github.com 没毛病
User git # 这里就这么写,别管为啥了,我也不知道。。。
IdentityFile /root/.ssh/proj1 # 这是刚才生成的秘钥的位置
Host github-proj2.com
HostName github.com
User git
IdentityFile /root/.ssh/proj2
五、clone 代码
从GitHub上粘贴出来的 ssh 克隆地址:
git@github.com:wdx/proj1.git
git@github.com:wdx/proj2.git ,作如下修改:
git@github-proj1.com:wdx/proj1.git
git@github-proj2.com:wdx/proj2.git
分别 clone
$ git clone git@github-proj1.com:wdx/proj1.git
$ git clone git@github-proj2.com:wdx/proj2.git
哦了,~\(^o^)/~