2015-05-19 11 views
5

Obecnie używam GitLab jako mojego zdalnego serwera GIT.
nie mam problemu, korzystając z jednego konta Gitlab klucza SSH przypisanego do niego.Jak skonfigurować dwa klucze SSH dla dwóch kont GitLab i push/pull przy użyciu TortoiseGit?

Ale teraz zastosować kolejne konto Gitlab i staram się używać tego samego klucza SSH dla niego, ale ja nie mogę dodać klucz do tego nowego konta.
Błąd jest następujący gdy próbowałem dodać klucz:

Key została już podjęta
papilarnych zostały już podjęte

Więc jak powinno się używać tego samego klucza, aby uzyskać dostęp do drugie konto Gitlab? jeśli nie jest to możliwe, jak powinienem użyć dwóch kluczy jednocześnie.

Nawiasem mówiąc, używam systemu Windows.

Z góry dziękuję !!

============================================== ===================== Aktualizacje:

Poniżej jest mój plik konfiguracyjny. I to jest w następujący sposób:

#my primary account 
Host {account1} 
    User git 
    HostName gitlab.com 
    PreferredAuthentications publickey 
    IdentityFile C:/Users/{username}/.ssh/id_rsa1 

#for NPR_HPTG account 
Host {account2} 
    User git 
    HostName gitlab.com 
    PreferredAuthentications publickey 
    IdentityFile C:/Users/{username}/.ssh/id_rsa2 

i mam dwa konta Gitlab,

[email protected]:{account_1}/repo1.git 
[email protected]:{account_2}/repo1.git 

Mimo to, nie można uzyskać dostępu do account_2.

Poprzednio, zanim posiadam drugie konto GitLab, po prostu wgrywam klucz ssh do account1 bez konieczności ustawiania This. Ale teraz, podążając za tym, wciąż mogłem w końcu przejść do [email protected]:{account_2}/repo1.git. I używam TortoiseGit do pchania/ciągnięcia.

Odpowiedz

16

Wystarczy zadeklarować każdy prywatnych kluczy ssh w pliku %HOME%/.ssh/config:

Host gitlabuser1 
    User git 
    Hostname {hostname} 
    PreferredAuthentications publickey 
    IdentityFile C:/Users/{username}/.ssh/id_rsa1 

Host gitlabuser2 
    User git 
    Hostname {hostname} 
    PreferredAuthentications publickey 
    IdentityFile C:/Users/{username}/.ssh/id_rsa2 

To zakłada swój zestaw kluczy SSH to:

%HOME%/.ssh/id_rsa1 ; %HOME%/.ssh/id_rsa1.pub 
%HOME%/.ssh/id_rsa2 ; %HOME%/.ssh/id_rsa2.pub 

Można wtedy korzystać z adresów URL dla klonu/pchania/ciągnięcia :

gitlabuser1:yourRepo1 
gitlabuser2:yourRepo2 

Upewnij się, że sesja CMD ma %HOME% zdefiniowane, zwykle na %USERPROFILE% (co jest zrobione dla ciebie z git-cmd.bat)

Masz bardziej szczegółową procedurę in this blog post.

+0

jestem skłonny uwierzyć, że samo pisanie 'IdentityFile id_rsa2' powinien odebrać ten plik' id_rsa2' z '~/.ssh /' w ten sposób postępuje słusznie automagicznie. Chciałbym zobaczyć. – kostix

+0

@kostix Interesujące. Zwykle zawsze podaję pełną ścieżkę. – VonC

+0

Jaki powinien być prawidłowy format dla 'gitlabuser1'. czy to coś takiego: '[email protected]: my_username'? – 2342G456DI8

Powiązane problemy