2011-11-18 122 views
50

我有一個用於我的9-5作業的Bitbucket帳戶,我也有個人Bitbucket帳戶。我的目標是能夠在同一臺計算機上使用兩者。我已經在Windows 7電腦上安裝了最新的git。多個bitbucket帳戶

因此,目前與我公司Bitbucket帳戶的一切工作正常,我可以拉/推沒有問題。我使用ssh-keygen創建了一個新的ssh密鑰,並在我的例子「tech」中分配了一個新名稱。但我在如何告訴本地repo使用我創建的新ssh密鑰時遇到問題。我假設每次嘗試連接時都使用第一個ssh密鑰。

我得到的錯誤:

$混帳推 conq:存儲庫訪問被拒絕。 致命:遠程端意外掛斷

我在網上找到了一些建議,但它似乎與linux/git設置有關,例如我在windows上找不到「config」文件。

+0

[Multiple GitHub Accounts&SSH Config]的可能重複(http://stackoverflow.com/questions/3225862/multiple-github-accounts-ssh-config) – MrTux

回答

40

如果您沒有將密鑰添加到密鑰管理器(ssh-agent)中,您可能會得到此錯誤。要做到這一點:

ssh-add ~/.ssh/tech 

順便說一句,如果你有多個Bitbucket帳戶,你需要一個唯一的密鑰爲每個帳戶。 IOW,你不能重複使用密鑰。

+4

這解決了我的問題,bitbucket所在的文檔中缺少這一步驟。謝謝。 – ams

0

您應該只生成一次公鑰/私鑰對。然後,如果您提供了私鑰,那麼擁有您的公鑰的所有主機都會允許您的連接。

+2

如果你只有一個公鑰/私鑰對,那麼您無法訪問bitbucket上的兩個存儲庫。當您嘗試將公共ssh密鑰添加到第二個密鑰時,它會抱怨該密鑰已被添加到帳戶中。 – jononomo

+0

@JonCrowell聽起來很奇怪。我沒有使用bitbucket,但github允許將一個密鑰分配給多個回購站。幾個鍵對不同設備有意義。例如。一個用於筆記本,另一個用於桌面。如果您的筆記本電腦被盜,您可以撤銷其密鑰,但繼續使用桌面。 – kan

+1

我不認爲這應該是被接受的答案,因爲訪問Bitbucket是這個問題中的一個要求。 – Andrew

0

如上所述,您只需要生成一次您的pubkey - 因爲您已經使用BitBucket進行設置,您的id_rsa(或任何您命名的文件)文件在哪裏?在我們的Windows安裝中,它位於隱藏文件夾.ssh的用戶主目錄下。您應該能夠在那裏創建config文件。

75

This blog post描述了一種直接的方法,可以將多個ssh密鑰添加到單臺計算機,並使用一個ssh密鑰(每個bitbucket帳戶)。它比official bitbucket documentation更清晰。總結如下:

首先,確保您有一個像this one on Github這樣的教程的默認帳戶設置。

對於第二個帳戶:

  1. 創建一個新的SSH密鑰:

    ssh-keygen -f ~/.ssh/<your second account name> -C "<you email>" 
    
  2. 使用pbcopy < ~/.ssh/<your second account name>.pub複製的公鑰和此鍵添加到您的到位桶帳戶(在設置區域)

(在Windows上,您可以使用來複制ssh密鑰或Linux you can follow these instructions.

  1. 將以下內容添加到您的~/.ssh/config文件中。第一個設置bitbucket.org的默認密鑰。第二個將第二個密鑰設置爲bitbucket的別名bitbucket-account2。組織:

    Host bitbucket.org 
        Hostname bitbucket.org 
        IdentityFile ~/.ssh/id_rsa 
    
    Host bitbucket-account2 
        Hostname bitbucket.org 
        PreferredAuthentications publickey 
        IdentityFile ~/.ssh/<your second account name> 
    
  2. 您現在可以克隆項目,默認帳戶的相同方式前:

    git clone [email protected]:username/project.git 
    
  3. 克隆與第二身份的一個項目,與主機替換bitbucket.org那

    git clone [email protected]:username/project.git 
    
:您在 ~/.ssh/config文件(即高於 bitbucket-account2)規定210

就是這樣!

+0

這工作完美。謝謝! –

+0

管理兩個帳戶的最佳選擇 –

+2

我必須使用以下命令添加ssh密鑰:ssh-add〜/ .ssh/<密鑰文件名> –

0

您可以添加公司的電子郵件在您的個人到位桶帳戶,在到位桶帳戶管理頁面:

enter image description here

您可以登錄您的個人電子郵件帳戶,並在單一到位桶的訪問無論是個人項目和企業項目帳戶,它只使用一個ssh私鑰。