1. 生成兩個sshkey
生成第一個sshkey
$ ssh-keygen -t rsa -C "你的郵箱1@xxx.com"
生成第二個sshkey
$ ssh-keygen -t rsa -C "你的郵箱2@xxx.com"
注意:不要一路回車护戳,要對文件進(jìn)行重命名始花。
在這里我創(chuàng)建的第一個sshkey是id_rsa
缀台,第二個是 id_rsa_two
2. 配置 config
我們需要在目錄: ~/.ssh/ (linux)垄提,C:\Users\admin\.ssh\ (windows)价捧,創(chuàng)建config文件,并且配置ssh key的路由策略饺藤。
創(chuàng)建config文件:
$ touch config
linux 下 config 配置:
# gitee server one
Host gitee.com
HostName gitee.com
User git
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa
# gitee server two
Host gitee_two.com
HostName gitee.com
User git
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_two
windows 下 config 配置:
#gitee server one
Host gitee.com
Hostname gitee.com
User git
PreferredAuthentications publickey
IdentityFile C:\\Users\\\admin\\.ssh\\id_rsa
#gitee server two
Host gitee_two.com
Hostname gitee.com
User git
PreferredAuthentications publickey
IdentityFile C:\\Users\\\admin\\.ssh\\id_rsa_two
Host
: 相當(dāng)于一個別名包斑,遠(yuǎn)程倉庫地址的域名別名它涵蓋了下面一個段的配置,我們可以通過他來替代將要連接的服務(wù)器地址涕俗。這里可以使用任意字段或通配符罗丰。訪問ssh的時候如果服務(wù)器地址能匹配上這里Host指定的值,則Host下面指定的HostName將被作為最終的服務(wù)器地址使用再姑,并且將使用該Host字段下面配置的所有自定義配置來覆蓋默認(rèn)的/etc/ssh/ssh_config
配置信息萌抵。
HostName
:真正連接的服務(wù)器地址
User
:自定義的用戶名
PreferredAuthentications
指定優(yōu)先使用哪種方式驗證,支持密碼和秘鑰驗證方式
IdentityFile
:指定本次連接使用的密鑰文件
3. 添加sshkey
通過查看 ~/.ssh/id_rsa.pub 文件內(nèi)容元镀,獲取到你的 public key
cat ~/.ssh/id_rsa.pub
- 添加公鑰:
復(fù)制生成后的 ssh key绍填,通過倉庫主頁 「管理」->「部署公鑰管理」->「添加部署公鑰」 ,將生成的 public key 添加到倉庫中栖疑。( 針對于碼云 )
4. 驗證是否成功
連接測試
[root@hostname .ssh]# ssh -T git@gitee.com
Hello 用戶名 You've connected to Coding.net by SSH successfully!
[root@hostname .ssh]# ssh -T git@gitee_two.com
Hi 用戶名! You've successfully authenticated, but GitHub does not provide shell access.
5. 拉取項目設(shè)置
通過上述設(shè)置讨永,就可以通過不同的Host來針對不同的git倉庫和git項目使用不同的ssh key。
注意:通常情況下我們從git倉庫拉取的項目ssh訪問地址遇革,類似這種git@git倉庫地址:用戶名/項目名.git
卿闹。一定要把這里的git倉庫地址替換為ssh config里面設(shè)定的Host。
[root@hostname .ssh]# git clone git@gitee.com:用戶名/項目名.git
替換為如下
[root@hostname .ssh]# git clone git@gitee_two.com:用戶名/項目名.git
6. 關(guān)聯(lián)本地已有的項目
通過上述設(shè)置萝快,就可以通過不同的Host來針對不同的git倉庫和git項目使用不同的ssh key锻霎。
注意:通常情況下我們將本地倉庫與git遠(yuǎn)程倉庫進(jìn)行關(guān)聯(lián)時的地址是ssh訪問地址時,類似這種git@git倉庫地址:用戶名/項目名.git
揪漩。一定要把這里的git倉庫地址替換為ssh config里面設(shè)定的Host旋恼。
git remote add origin git@gitee.com:用戶名/項目名.git
git remote add origin git@gitee_two.com:用戶名/項目名.git