一般咱們有使用 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 另外一個項目的時候要手動修改下地址爲上述地址便可。