Git本地配置多個SSH-Key公鑰登錄


背景

當一台工作電腦需要通過SSH-Key方式登錄多個git賬號時,比如:

a. 一個mygit,用於公司內部比較隱私的工作開發;

b. 一個gitee,用於公司內部普通的工作開發;

c. 一個github,用於自己進行一些公開的分享的開發活動;

 Git服務器部署在Linux服務器上。

 

解決方法

1. 生成一個公司用的mygit的SSH-Key

$ ssh-keygen  -t  rsa  -C  'xxxx@company.com'  -f  ~/.ssh/mygit_id_rsa

2. 生成一個公司用的gitee的SSH-Key

$ ssh-keygen  -t  rsa  -C  'xxxx@company.com'  -f  ~/.ssh/gitee_id_rsa

3. 生成一個github用的SSH-Key

$ ssh-keygen  -t  rsa  -C  'xxxx@qq.com'  -f  ~/.ssh/github_id_rsa

 

4. 在用戶目錄 ~/.ssh 目錄下新建一個名為config的文件,添加如下內容

# mygit Host 192.168.80.129 PreferredAuthentications publickey IdentityFile ~/.ssh/mygit_id_rsa # gitee,Host值為域名或者ip(必填);HostName值為域名或者ip(非必須);User值可任意(非必須) Host gitee.com HostName gitee.com User gitee PreferredAuthentications publickey IdentityFile ~/.ssh/gitee_id_rsa # github Host github.com PreferredAuthentications publickey IdentityFile ~/.ssh/github_id_rsa

5. 把.pub文件中的公鑰字符串復制到對應平台(公鑰文件.pub 可以刪掉)。

    對於公司內部搭建的git服務器,則復制到用戶目錄 ~/.ssh/authorized_keys 文件中(該文件如果沒有,則需要手動創建)

    

6. 用ssh命令分別測試

$ ssh -T git@192.168.80.129
$ ssh -T git@gitee.com
$ ssh -T git@github.com

這里以gitee為例,成功的話會返回下圖所示

 

ssh-keygen命令介紹:

格式:ssh-keygen  -t  rsa  -C  root@localhost  -f  ~/.ssh/id_rsa  -P  <密碼>

-t:指定生成密鑰類型(rsa、dsa)。默認為rsa

-f:指定存放私鑰的文件名,默認為id_rsa。公鑰文件名默認為私鑰文件名加.pub后綴。~:代表用戶目錄。

-P:指定passphrase(私鑰的加密密碼),用於確保私鑰的安全。默認為空。

-C:備注(非必須,可任意寫)。默認為user@hostname。建議填寫郵箱地址:youremail@example.com

 

PS:1. 密鑰對是特殊的密碼對,用於linux用戶登錄時的鑒權。
           私鑰(比較隱私)放在本地,公鑰字符串則手動復制到公司的linux服務器的用戶目錄 ~/.ssh/authorized_keys 文件中(需要手動創建)
           登錄時就基於某用戶名和密鑰指紋進行私鑰公鑰的成對匹配,匹配通過則允許登錄。

        2.一般情況下,本地客戶端可以使用同一個密鑰(私鑰),同時登陸gitee網站(僅限一個用戶)、github網站(僅限一個用戶)、公司git服務器(一個git用戶)。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM