Mehrere Bitbucket-Konten

73

Ich habe ein Bitbucket-Konto für meinen 9-5-Job und ich habe auch ein persönliches Bitbucket-Konto. Mein Ziel ist es, beide auf demselben Computer verwenden zu können. Ich habe das neueste Git auf einem Windows 7-PC installiert.

Derzeit funktioniert also alles mit dem Bitbucket-Konto meines Unternehmens einwandfrei. Ich kann problemlos ziehen / pushen. Ich habe mit ssh-keygen einen neuen ssh-Schlüssel erstellt und in meinem Fall "tech" einen neuen Namen vergeben. Ich habe jedoch Probleme damit, einem lokalen Repo mitzuteilen, dass es den neuen SSH-Schlüssel verwenden soll, den ich erstellt habe. Ich gehe davon aus, dass jedes Mal, wenn ich versuche, eine Verbindung herzustellen, der erste SSH-Schlüssel verwendet wird.

Ich bekomme den Fehler:

$ git push conq: Repository-Zugriff verweigert. tödlich: Das entfernte Ende legte unerwartet auf

Ich habe im Internet einige Ratschläge gefunden, aber es scheint sich um ein Linux / Git-Setup zu handeln, zum Beispiel kann ich die "config" -Datei unter Windows nicht finden.

TheWebGuy
quelle
Mögliches Duplikat von mehreren GitHub-Konten und SSH-
Konfiguration

Antworten:

51

Möglicherweise wird dieser Fehler angezeigt, wenn Sie den Schlüssel nicht zum Schlüsselmanager (ssh-agent) hinzugefügt haben. Um dies zu tun:

ssh-add ~/.ssh/tech

Wenn Sie mehrere Bitbucket-Konten haben, benötigen Sie übrigens für jedes Konto einen eindeutigen Schlüssel. Sie können Schlüssel nicht wiederverwenden.

MoxieandMore
quelle
4
Das hat mein Problem behoben, der Schritt fehlt in der Dokumentation der Bitbucket sitzen. Vielen Dank.
Ams
107

Dieser Blog-Beitrag beschreibt eine einfache Möglichkeit, einem einzelnen Computer mehrere SSH-Schlüssel hinzuzufügen und einen SSH-Schlüssel pro Bitbucket-Konto zu verwenden. Es ist viel klarer als die offizielle Bitbucket-Dokumentation . Zusammenfassen:

Stellen Sie zunächst sicher, dass Sie ein Standardkonto eingerichtet haben. Verwenden Sie dazu ein Tutorial wie dieses auf Github .

Für den zweiten Account:

  1. Erstellen Sie einen neuen SSH-Schlüssel:

    ssh-keygen -f ~/.ssh/<your second account name> -C "<you email>"
    
  2. Fügen Sie den SSH-Schlüssel hinzu:

    ssh-add ~/.ssh/<key file name> 
    
  3. Verwenden pbcopy < ~/.ssh/<your second account name>.pubSie diese Option, um den öffentlichen Schlüssel zu kopieren und diesen Schlüssel Ihrem Bitbucket-Konto hinzuzufügen (im Einstellungsbereich).

(Unter Windows können Sie den SSH-Schlüssel unter Linux kopieren ssh-keygen -f ~/.ssh/<your account name> -c "<your email>" | clipoder unter Linux diese Anweisungen befolgen. )

  1. Fügen Sie Ihrer ~/.ssh/configDatei Folgendes hinzu . Der erste legt den Standardschlüssel für bitbucket.org fest. Der zweite setzt Ihren zweiten Schlüssel auf einen Alias bitbucket-account2für 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. Sie können jetzt Projekte mit Ihrem Standardkonto auf die gleiche Weise wie zuvor klonen:

    git clone [email protected]:username/project.git
    
  3. Um ein Projekt mit der zweiten Identität zu klonen, ersetzen Sie bitbucket.org durch den Host, den Sie in der ~/.ssh/configDatei angegeben haben (dh bitbucket-account2oben):

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

Das ist es!

ZenBalance
quelle
5
Ich musste den ssh-Schlüssel mit dem folgenden Befehl hinzufügen: ssh-add ~ / .ssh / <Schlüsseldateiname>
Samik Bandyopadhyay
Wie @SamikBandyopadhyay hervorhebt, müssen Sie auf jedem System, das ssh-agent verwendet (z. B. Mac seit Leopard), den Schlüssel auch mit ssh-add zum Agenten hinzufügen. Ich fand heraus, dass ssh ohne diesen Schritt immer noch die Standard-ID_rsa für die Alias-Domäne verwendete und selbst wenn der Parameter ssh -i verwendet wurde, um explizit zur zweiten Identität zu gelangen. Sehr verwirrend! ssh-add hat es sofort behoben.
Scipilot
Unter Windows gibt es keinen Befehl pbcopy, daher ist diese Anweisung unvollständig.
Stepan Yakovenko
1
@StepanYakovenko wurde aktualisiert und enthält nun Windows- und Linux-pbcopy-Entsprechungen.
ZenBalance
Diese Antwort sollte als Lösung markiert werden - wirklich!
Tomasz Kapłoński
0

Wie bereits erwähnt, müssen Sie Ihren Pubkey nur einmal generieren. Da Sie bereits mit BitBucket eingerichtet sind, wo befindet sich Ihre id_rsa(oder wie auch immer Sie Ihre genannt haben) Datei? Bei unseren Windows-Installationen befindet es sich im Ausgangsverzeichnis des Benutzers im versteckten Ordner .ssh. Sie sollten dort eine configDatei erstellen können.

Nic
quelle
-1

Sie sollten ein öffentliches / privates Schlüsselpaar nur einmal generieren. Dann erlauben alle Hosts, die Ihren öffentlichen Schlüssel haben, Verbindungen von Ihnen, wenn Sie den privaten Schlüssel angeben.

kan
quelle
2
Wenn Sie nur ein öffentliches / privates Schlüsselpaar haben, können Sie nicht auf zwei Repositorys auf bitbucket zugreifen. Wenn Sie versuchen, Ihren öffentlichen SSH-Schlüssel zum zweiten hinzuzufügen, wird beanstandet, dass dieser Schlüssel bereits einem Konto hinzugefügt wurde.
Jononomo
@ JonCrowell Klingt komisch. Ich habe kein Bitbucket verwendet, aber Github erlaubt es, mehreren Repos einen Schlüssel zuzuweisen. Mehrere Tasten sind für verschiedene Geräte sinnvoll. ZB eine für Laptops, eine für Desktops. Wenn Ihr Laptop gestohlen wird, können Sie den Schlüssel widerrufen, aber weiterhin den Desktop verwenden.
Kan
1
Ich denke nicht, dass dies die akzeptierte Antwort sein sollte, da der Zugriff auf Bitbucket eine Voraussetzung in der Frage ist.
Andrew
@ Andrew "Sie müssen nur zwei Identitäten (Schlüssel) erstellen, wenn Sie zwei verschiedene Bitbucket-Konten haben." Wenn Sie zwei Konten haben, gibt es in der Frage zwei Repositorys, keine Konten.
Kan
3
@kan - lautete die Frage nicht "Ich habe ein Bitbucket-Konto für meinen 9-5-Job und ich habe auch ein persönliches Bitbucket-Konto. Mein Ziel ist es, beide auf demselben Computer verwenden zu können."? Es klingt für mich, als hätte er 2 Bitbucket-Konten?
Andrew
-1

Sie können Ihre Unternehmens-E-Mail-Adresse in Ihr persönliches Bitbucket-Konto einfügen. Auf der Seite zur Verwaltung des Bitbucket-Kontos:

Geben Sie hier die Bildbeschreibung ein

Sie können sich in Ihrem persönlichen E-Mail-Konto anmelden und auf persönliche Projekte und Unternehmensprojekte in einem einzigen Bitbucket-Konto zugreifen, das nur einen privaten SSH-Schlüssel verwendet.

Cody
quelle
Falsch! Sie erhalten[email protected] is already in use by another user.
Green