多个比特桶账户


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>" | clip在Linux上,您可以按照以下说明进行操作。)

  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.