Git多賬戶配置

2021-08-18 23:01:06 字數 3296 閱讀 9373

公用ssh金鑰對於gitlab必須是唯一的,因為它們將繫結到你的帳戶。ssh金鑰是通過ssh推送**時唯一擁有的識別符號,所以它需要唯一地對映到單個使用者

在實際開發中,我們可能會碰到在一台電腦上配置多個git賬戶,在不同倉庫提交不同的資訊,比如個人git賬戶「personal」和公司git賬戶「work」。因此我們需要生成多對金鑰以對應不同的賬戶。

大致思路,建立兩個金鑰,不同賬號配置不同的金鑰,不同倉庫配置不同金鑰

首先確認你已安裝git,可以通過 git --version 命令可以檢視當前安裝的版本。

mac osx中都已經安裝了git。但是,git的版本未必是最新的。可以通過命令git clone 進行更新

鑰對的儲存位置預設在 ~/.ssh 目錄,先定位到對應目錄

cd ~/.ssh
金鑰有多種,具體根據git伺服器選擇。rsa金鑰是最常見的金鑰,ed25519 ssh金鑰則具有更高的安全和效能。輸入命令後連續enter跳過密碼直接生成

ssh-keygen -t rsa -c "[email protected]"
或者你想生成乙個ed25519 ssh金鑰對

ssh-keygen -t ed25519 -c "[email protected]"
複製公鑰配置到git伺服器

pbcopy < ~/.ssh/gitlab_id-rsa-work.pub
新增私鑰到本地

ssh-add ~/.ssh/gitlab_id-rsa-work
新增完畢後,可以通過執行 ssh-add -l 驗證下,如圖即為新增成功

接下來,我們需要在本地建立乙個金鑰配置檔案,通過該檔案,實現根據倉庫的 remote 鏈結位址自動選擇合適的私鑰。這是在~/.ssh/config檔案中配置的。

如果沒有config檔案,需要建立

mkdir -p config
編輯config檔案,輸入

host github

port 22

user username1

hostname github.com

preferredauthentications publickey

identityfile ~/.ssh/github_id-rsa

host gitlab

port 22

user username2

hostname gitlab.com

preferredauthentications publickey

identityfile ~/.ssh/gitlab_id-rsa-work

在此檔案中,可以設定多個主機的配置,例如gitlab.com,你自己的gitlab例項,github,bitbucket等。每個使用者配置包含以下幾個配置項:

port:自定義的埠。預設為22,可不配置

preferredauthentications指定優先使用哪種方式驗證,支援密碼和秘鑰驗證方式

identityfile本次連線使用的私鑰的絕對路徑

注:host 就是可以替代 hostname 來使用的別名,比如我 github 上某個倉庫的 clone 位址為:「[email protected]:test.git」,那麼使用 host 後就是:「git@github:test.git「

測試是否配置正常,(替換gitlab.com為gitlab的例項域)

ssh -t [email protected]
首次通過ssh連線到gitlab時,將要求您驗證要連線的gitlab主機的真實性。例如,當連線到gitlab.com時,請回答yes將gitlab.com新增到受信任主機列表中

git共有三個級別的config檔案,分別是system(系統級別)、global(使用者級別)和local(當前倉庫)。system配置整個系統只有乙個,global配置每個賬戶只有乙個,而local配置和git倉庫的數目相同,並且只有在倉庫目錄才能看到該配置。

設定先從system -> global -> local 底層配置會覆蓋頂層配置 分別使用-- system/global/local 可以定位到配置檔案

檢視系統config

git config --system --list
檢視當前使用者(global)配置

git config --global  --list
檢視當前倉庫配置資訊

git config --local  --list
由此可見–global中儲存了提交使用者的email和使用者名稱 如果需要手動設定則可以使用如下指令

git config --global user.name "myname"

git config --global user.email "[email protected]"

假設gitlab與jgithub的工作目錄分別如下所示:~/workspace/github 和 ~/workspace/gitlab,如果我希望分別以不同的使用者名稱提交,配置如下:

#gitlab

$ cd ~/workspace/gitlab

$ git init

$ git config --local user.name 'gitlab'

$ git config --local user.email '[email protected]'

#github

$ cd ~/workspace/github

$ git init

$ git config --local user.name 'personal'

$ git config --local user.email '[email protected]'

可以執行如下命令獲取對config命令的手冊頁幫助:

git help config

git多賬戶配置

公司有自己的git伺服器 我在git上也有自己的小專案 如何配置多賬戶呢?1.取消使用者名稱全域性設定 git config global unset user.name git config global unset user.email 2.在.ssh資料夾下新建config檔案 host co...

git多賬戶配置

1 在 gitbash上執行 ssh keygen t rsa c 賬戶郵箱 2 接下來會提示輸入key的名字 預設名字為id rsa 或者為了方便辨認重新命名github rsa 3 然後回車。4 回車,ssh agent預設只讀取id rsa,為了讓ssh識別新的私鑰,需將其新增到ssh age...

git 配置多賬戶

先把問題丟擲來 我們在使用git提交 的時候都是一台電腦乙個git賬戶提交的 但是如果想有多個git賬戶,比如我想把部分 提交到自己的倉庫上,還有另外乙個公司git賬戶提交 到公有的倉庫上。這種情況怎麼配置就是接下來要說的。簡單的就直接 ssh keygen o t rsa c your.email...