2017-08-05 248 views
0

有沒有辦法通過SSH密鑰通過使用兩個不同的電子郵件地址來操作GitLabGitHub的帳戶?Git的SSH密鑰:兩個不同的賬戶github上和gitlab

我有兩個郵件ID,[email protected][email protected],我想推動一些項目gitlab以及一些其他的項目,GitHub的,也是我想避免密碼在每次推送命令進入提示。可能嗎?

+0

爲避免ssh詢問密碼使用[ssh-agent](https://stackoverflow.com/a/10032655/7976758)。 – phd

回答

1

你可以嘗試使用SSH而不是https:上傳你的公共ssh git到服務器,並使用ssh url。例如,對於github上你不應該有這樣

https://github.com/<username>/<repo>.git 

一個網址,但您應該有

[email protected]:<username>/<repo>.git 

-

現在,使用不同的SSH密鑰或用戶名,你可以嘗試設置你的~/.ssh/config文件類似

Host   gitlab.com 
HostName  gitlab.com 
IdentityFile ~/.ssh/gitlab 
User   [email protected] 

Host   github.com 
HostName  github.com 
IdentityFile ~/.ssh/github 
User   [email protected] 

IdentityFile是私鑰ssh密鑰的路徑

+0

但推送到存儲庫時,它一直在問我'用戶名'和'密碼' –

+0

這可能是因爲您使用的是https網址。我只是相應地更新了我的答案 – gturri

0

github的一個選項是使用personal access tokens。只需登錄到您的帳戶並轉到您的設置(點擊個人資料圖片旁邊的下拉框),然後滾動到設置頁面的底部,您將看到一個指向「個人訪問令牌」的鏈接。

然後創建一個具有完全訪問回購權限的令牌(如果所有您想要執行的操作都是推拉式操作,則其他API訪問並不重要)。

令牌系統創建爲允許API訪問github,但它也可以與HTTPS鏈接一起使用。

使用HTTPS而不是SSH克隆您的回購(或者,如果它已經是SSH,那麼只需複製HTTPS網址並替換您的.git/config文件中的SSH網址)。然後編輯您的.git/config文件並將訪問令牌添加到HTTPS網址。

的語法是通過Web瀏覽器使用的標準基本認證語法:

https://<YOUR_GITHUB_USERNAME>:<YOUR_ACCESS_TOKEN>@github.com 

我用這允許我使用github上與多個用戶帳戶(工作,對我個人的項目,志願工作等。 )。