一台服务器中配置多个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^)/~

上一篇下一篇

猜你喜欢

热点阅读