2016-06-18 20 views
7

I 2 Konten in Gitlab Webseite verwenden möchte, verwenden, macht jedes mit einem anderen SSH-SchlüsselWie mehrere SSH-Schlüssel für mehr Gitlab Konten mit dem gleichen Host

ich die Schlüssel erfolgreich generierte und sich in ~/.ssh Ordnern hinzufügen ich habe ~/.ssh/config Datei und verwenden sie einen von ihnen, es funktioniert gut ich kann auch durch Bearbeiten der ~/.ssh/config Datei

Das Problem ist, zwischen den beiden Tasten machen Swapping: ich möchte, dass sie in der gleichen Zeit verwenden, aber alle die Tutorials, die ich gefunden habe, über difffe mieten Gastgeber:/

eigentlich meine beiden Konten sind in dem gleichen Host

wie kann ich die ~/.ssh/config Datei bearbeiten zwei Konten für denselben Host

Hinweis zu akzeptieren: Ich lese this question aber ich kann ‚t erhalten sie Hilfe von ihm

Meine beiden Konten sind username1 und username2 Repo-URL wie folgt aussieht: [email protected]:username1/test-project.git

Meine aktuelle ~/.ssh/config Datei:

Host gitlab.com-username1 
    HostName gitlab.com 
    User git 
    IdentityFile ~/.ssh/id_rsa 

Host gitlab.com-username2 
    HostName gitlab.com 
    User git 
    IdentityFile ~/.ssh/id_rsa_username2 

Update 1:

1) Wenn ich einen Schlüssel in der Datei ~/.ssh/config verwenden, funktioniert alles perfekt (aber es ist sehr langweilig es mir jedes Mal aktualisieren mag um den Benutzer zu ändern i verwenden)

2) Wenn ich diese Zeilen verwenden ssh -T [email protected] ssh -T [email protected] seine Werke gut und zurück eine Begrüßung

von 1) und 2), ich denke, das Problem auf jeden Fall aus der ~/.ssh/config Datei ist, speziell in Host Variable

Update 2: (der Lösung) das Lösen der .git/config Datei von [remote "origin"] url = [email protected]:username1/test-project.git zu bearbeiten war zu [remote "origin"] url = [email protected]:username1/test-project.git

und das gleiche für die username2

+0

Ich lese es, ich spreche über verschiedene Konten, in meinem Fall möchte ich das im selben Host tun:/ –

+0

"* Ich möchte 2 Konten in Gitlab Website verwenden *" ??? Das Duplikat verwendet den gleichen Host (Sie müssen nur github mit gitlab ersetzen. Es gibt nur auf github. – Jakuje

+0

es 'github.com' und' ac2.github.com' verwenden, aber in meinem Fall sind die gleichen 'gitlab. com "ohne Subdomain –

Antwort

4

Sie haben die vollständige Konfiguration ssh.Überprüfen Sie zunächst, ob es funktioniert:

sollte in beiden Fällen erfolgreich sein. Wenn nicht, sind die Tasten nicht richtig eingerichtet. Stellen Sie sicher, dass sich die Schlüssel für die jeweiligen Benutzer auf gitlab befinden. Wenn es funktioniert, gehen Sie zu Ihrem Git Repository und öffnen Sie .git/config. Es wird ein Teil haben wie:

[remote "origin"] 
    url = [email protected]:username1/test-project.git 

Ersetzen Sie es mit

[remote "origin"] 
    url = [email protected]:username1/test-project.git 

(oder username1, wenn Sie diesen Benutzernamen verbinden möchten verwenden). Dann sollte es Ihnen erlauben, zu drücken.

+0

die ersten zwei Zeilen gibt 'GitLab: Disallowed command' und somethims 'ssh zurück: Hostname konnte nicht aufgelöst werden gitlab.com-username1: Name oder Dienst nicht bekannt der Unterschied passiert, wenn ich die '~/.ssh/config' Datei bearbeiten aber trotzdem ist der Schlüssel in Ordnung, denn wenn ich einen Schlüssel in' ~/.ssh/config' wie 'Host-gitlab.com \t Host-Name gitlab.com \t Benutzer git \t Identity ~/.ssh/id_rsa' der Code funktioniert gut:/und die Festschreibungen schieben Gitlab, so denke ich, dass das Problem ist, ich n die Konfigurationsdatei:/ ' –

+1

Vielleicht ohne die' verify'. Aber ja, es sieht gut aus. Also repariere die Konfigurationsdatei. Oder ist da noch etwas unklar? – Jakuje

+0

ja wie kann ich die config: /, ich werde es versuchen, ohne zu überprüfen –

1

Über die genaue ~/.ssh/config von oben und aktualisieren Sie die URLs, die Sie mit Git verwenden, auf [email protected]:username1/test-project.git für den ersten Benutzer und [email protected]:username2/test-project.git für die zweite (z. B. git clone [email protected]:username1/test-project.git).

SSH sucht nach dem gitlab.com-username1 Alias ​​in ~/.ssh/config und verwendet den richtigen Hostnamen und die richtige SSH-Schlüsseldatei.

Eine andere Möglichkeit wäre, nur einen Benutzer zum Schieben/Ziehen zu verwenden und diesem Benutzer die erforderlichen Rechte zu gewähren.

+0

'Host [email protected]: username1 /test-project.git Host-Name gitlab.com Benutzer git Identity ~/.ssh/id_rsa [email protected]: username1/Test-project.git Host-Name gitlab.com Benutzer git Identity ~/.ssh/id_rsa_username2' –

+0

ich aktualisiere es auf diese Weise aber nichts passiert, sollte ich auch spezifische jedes Repo in der Konfigurationsdatei? gibt es eine Möglichkeit, nur den Benutzernamen zu setzen:/ –

+0

Verwenden Sie die genaue .ssh/confit-Datei aus Ihrer Frage, aber verwenden Sie die genannten Urnen in Ihrem Git-Befehle. – MrTux