公用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...