多个比特桶账户


74

我有一个9-5工作的Bitbucket帐户,也有一个个人的Bitbucket帐户。我的目标是能够在同一台计算机上使用两者。我已经在Windows 7电脑上安装了最新的git。

因此,目前我公司的Bitbucket帐户一切正常,我可以毫无问题地进行拉/推。我使用ssh-keygen创建了一个新的ssh密钥,并在我的案例“ tech”中分配了一个新名称。但是我在如何告诉本地仓库使用我创建的新ssh密钥方面遇到问题。我假设每次尝试连接时都使用第一个ssh密钥。

我得到错误:

$ git push conq:存储库访问被拒绝。致命:远端意外挂断

我在互联网上找到了一些建议,但它似乎与linux / git设置有关,例如,我在Windows上找不到“ config”文件。


Answers:


52

如果尚未将密钥添加到密钥管理器(ssh-agent),则可能会收到此错误。去做这个:

ssh-add ~/.ssh/tech

顺便说一句,如果您有多个Bitbucket帐户,则每个帐户都需要一个唯一的密钥。您不能重复使用密钥。


4
解决了我的问题,bitbucket所在的文档中缺少该步骤。谢谢。
2012年

107

这篇博客文章描述了一种简单的方法,可以将多个ssh密钥添加到一台计算机上,并且每个位桶帐户使用一个ssh密钥。这比官方的bitbucket文档要清楚得多。总结一下:

首先,通过Github上的类似教程确保您具有默认帐户设置。

对于第二个帐户:

  1. 创建一个新的ssh密钥:

    ssh-keygen -f ~/.ssh/<your second account name> -C "<you email>"
    
  2. 添加ssh密钥:

    ssh-add ~/.ssh/<key file name> 
    
  3. 使用pbcopy < ~/.ssh/<your second account name>.pub复制的公钥和此键添加到您的帐户到位桶(在设置区域)

(在Windows上,您可以使用来复制ssh密钥;ssh-keygen -f ~/.ssh/<your account name> -c "<your email>" | clipLinux上,您可以按照以下说明进行操作。

  1. 将以下内容添加到您的~/.ssh/config文件中。第一个为bitbucket.org设置默认密钥。第二个将您的第二个密钥设置bitbucket-account2为bitbucket.org的别名:

    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 git@bitbucket.org:username/project.git
    
  3. 要克隆具有第二个身份的项目,请将bitbucket.org替换为~/.ssh/config文件中指定的主机(即bitbucket-account2上面的主机):

    git clone git@bitbucket-account2:username/project.git
    

而已!


5
我必须使用以下命令添加ssh密钥:ssh-
Samik Bandyopadhyay

正如@SamikBandyopadhyay指出的那样,在使用ssh-agent的任何系统上(例如Mac,从Leopard开始,您都需要使用ssh-add将密钥添加到代理中)。我发现没有执行此步骤,ssh仍使用标准id_rsa作为别名域,甚至在使用ssh -i参数显式路径到第二个标识时也是如此。很混乱!ssh-add立即修复它。
scipilot '17

Windows上没有pbcopy命令,因此该指令不完整。
Stepan Yakovenko

1
@StepanYakovenko已更新为包括Windows和Linux pbcopy等效项。
ZenBalance

这个答案应该标记为解决方案-真的!
TomaszKapłoński18年

0

如前所述,您只需要生成一次发布密钥-因为您已经使用BitBucket进行了设置,那么您id_rsa(或您命名的文件)文件在哪里?在我们的Windows安装中,它位于隐藏文件夹中用户的主目录下.ssh。您应该能够在config此处创建文件。


-1

您应该只生成一次公钥/私钥对。然后,如果您提供私钥,则拥有公钥的所有主机都将允许您进行连接。


2
如果只有一对公钥/私钥,则无法访问bitbucket上的两个存储库。当您尝试将公共ssh密钥添加到第二个密钥时,它将抱怨该密钥已经添加到帐户中。
jononomo 2013年

@JonCrowell听起来很奇怪。我没有使用bitbucket,但是github允许将一个密钥分配给多个存储库。几个按键对不同的设备有意义。例如,一个用于笔记本电脑,另一个用于台式机。如果您的笔记本电脑被盗,则可以撤消其钥匙,但可以继续使用台式机。
kan

1
我认为这不是应该接受的答案,因为访问Bitbucket是问题中的必要条件。
安德鲁

@Andrew“如果您有两个不同的Bitbucket帐户,则只需创建两个身份(密钥)”。它告诉您是否有两个帐户,在问题中有两个存储库,而不是帐户。
2013年

3
@kan-问题不是说“我有9-5职位的Bitbucket帐户,也有个人的Bitbucket帐户。我的目标是能够在同一台计算机上同时使用这两个帐户。” 在我看来,他有2个Bitbucket帐户?
安德鲁

-1

您可以在您的个人Bitbucket帐户中的公司帐户中添加公司电子邮件:

在此处输入图片说明

您可以登录您的个人电子邮件帐户,并在单个bitbucket帐户(仅使用一个ssh私钥)中访问个人项目和公司项目。


错误!您得到my@googmail.com is already in use by another user.
格林
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.