git配置多個ssh key


隨着工作的深入,我們通常都會有多個git賬戶。比如公司gitlab一個賬戶,github或gitee有一個賬戶。而平時我們又回通過 配置ssh公私鑰認證的方式省去繁瑣的登錄遠程倉庫的操作,不同的git賬戶一般都是不同的郵箱,而ssh又通過郵箱生成,那么就會涉及一個配置多對ssh key的問題


為Git配置SSH Key步驟


生成SSH Key

打開git bash終端,執行以下命令

ssh-keygen -t rsa -C "你的郵箱" 

然后一直回車,程序將會在的~/.ssh/路徑下生成一對公私鑰。至於為了區分不同的公私鑰,生成后再改名字即可

查看公鑰內容

以下命令可以查看公鑰內容,然后復制

cat ~/.ssh/id_rsa.pub
遠程倉庫配置公鑰

下面的已github為例,gitlab和gitee過程都基本一樣,大致過程就是:

點擊個人頭像 -> settings -> SSH And GPG Key -> 點擊 新增SSH Key按鈕 -> 復制公鑰

如圖所示:

image


配置多個SSH Key


通過以上配置SSH key 的步驟,我們可以為多個遠程倉庫配置配置SSH公鑰,本地~/.ssh/目錄如下所示

image

ssh-agent

打開ssh-agent

ssh-agent -s  & ssh-agent bash

ssh-agent就是一個密鑰管理器,運行ssh-agent以后,使用ssh-add將私鑰交給ssh-agent保管,其他程序需要身份驗證的時候可以將驗證申請交給ssh-agent來完成整個認證過程

這里如果你用的github官方的bash,用: ssh-agent -s
如果是其他的,比如msysgit,用:eval $(ssh-agent -s)
不然在添加私鑰的時候可能會報下面錯誤 Could not open a connection to your authentication agent.

添加私鑰

通過以下命令將所有私鑰進行添加

ssh-add ~/.ssh/私鑰
配置config文件

在存放公私鑰的同級目錄下創建一個名為config的文件,打開進行配置,如下所示:

# gitee
Host gitee.com
HostName gitee.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/gitee_rsa
User Acelin_H

# sitech
Host git.si-tech.com.cn
HostName git.si-tech.com.cn
PreferredAuthentications publickey
IdentityFile ~/.ssh/sitech_rsa
User Acelin_H

# github
Host github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/github_rsa
User Acelin_H

Host: 取任意名字
HostName: 這個是真實的域名地址
IdentityFile:這里是id_rsa的地址
PreferredAuthentications:配置登錄時用什么權限認證--可設置publickey,password publickey,keyboard-interactive等
User:配置使用用戶名

驗證

執行以下命令進行驗證

ssh -T -v  git@[config配置的host值]

出現以下提示則證明已經成功,可以不用登錄像各個遠程倉庫提交代碼

image


免責聲明!

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



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