一般咱们有使用 Github、Gitlab,当 Github 或 Gitlab 下有多个帐号,你会发现你的 ssh key 不够用了,由于站点会给你个提示:git
ssh key already in use github
这个时候咱们能够采用以下作法github
ssh-keygen -t rsa -C "你的邮箱"
用不一样的邮箱建立不一样的公钥/私钥对ssh
ssh-add '私钥路径'
ssh-add 提示并将用户的使用的私钥添加到由ssh-agent 维护的列表中. 此后, 当使用公钥链接到远程 SSH 或 SCP 主机时,再也不提示相关信息gitlab
在 .ssh 目录建立 config 文件,配置以下内容加密
# gitlab Host git.iboxpay.com HostName git.iboxpay.com PreferredAuthentications publickey IdentityFile ~/.ssh/id_rsa # github Host github2.com HostName github.com PreferredAuthentications publickey IdentityFile ~/.ssh/feygh # github Host github.com HostName github.com PreferredAuthentications publickey IdentityFile ~/.ssh/id_rsa
这个配置文件中 Gitlab 下的 ssh 通讯都走 id_rsa 公钥加密,因此你在 Gitlab 仓库中要复制 id_rsa 这个公钥过去;
值得注意的是,这里有两个 Github 配置,仔细观察下 HostName 都是 github.com,可是 Host 不同,这就是关键之处。code
你们回忆下咱们是怎么 clone Github 的?域名
git@github.com:username/projectname.git
分析这个地址 git@github.com 告诉 ssh 要登陆的主机,username 和 projectname 看字面意思就理解,不赘述。it
在这个配置文件中 Host 就是和 github.com 这个对应,HostName 是真实的物理链接 Host。io
若是你们这么 clone Github:class
git@github2.com:username/projectname.git
那么进行这个 ssh 链接的时候,会命中 ssh config 中 Host 为 github2.com 的配置,反过来亦然。也就说你在 clone Github 另外一个项目的时候要手动修改下地址为上述地址便可。