2015-05-19 30 views
5

Attualmente sto usando GitLab come mio server GIT remoto.
Non ho problemi nell'utilizzo di un singolo account Gitlab con chiave SSH assegnata.Come impostare due chiavi SSH per due account GitLab e push/pull usando TortoiseGit?

Ma ora ho applicato un altro account Gitlab e sto cercando di utilizzare la stessa chiave SSH per questo, ma non posso aggiungere la chiave a questo nuovo account.
L'errore è la seguente quando ho cercato di aggiungere la chiave:

chiave è già stata presa
impronte digitali è già stata presa

Così come dovrei usare lo stesso tasto per accedere al secondo account Gitlab? se non è possibile, come dovrei usare due chiavi allo stesso tempo.

A proposito, sto usando il sistema Windows.

Grazie in anticipo !!

========================================= ===================== Aggiornamenti:

Di seguito è riportato il mio file di configurazione. Ed è la seguente:

#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 

e sto avendo due conto Gitlab,

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

Eppure, non riesco ad accedere al account_2.

In precedenza, prima di avere questo secondo account GitLab, è sufficiente caricare la chiave ssh su account1 senza impostare il numero This. Ma ora seguendo questo, ancora, alla fine potrei spingere al [email protected]:{account_2}/repo1.git. E sto usando TortoiseGit per spingere/tirare.

risposta

16

semplicemente dichiarare ogni chiavi SSH private in un file %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 

che suppone il set di chiavi ssh sono:

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

è possibile utilizzare gli URL per il clone/push/pull :

gitlabuser1:yourRepo1 
gitlabuser2:yourRepo2 

assicurarsi che la sessione di CMD ha %HOME% definito, di solito a %USERPROFILE% (che è fatto per voi con git-cmd.bat)

Avete una procedura più dettagliata in this blog post.

+0

Sono propenso a credere che la semplice scrittura di 'IdentityFile id_rsa2' dovrebbe selezionare il file' id_rsa2' da '~/.ssh /' eseguendo automaticamente la cosa giusta. Proverei a vedere – kostix

+0

@kostix Interessante. Di solito specificano sempre il percorso completo. – VonC

+0

Quale dovrebbe essere il formato corretto per hte 'gitlabuser1'. è qualcosa di simile a questo: '[email protected]: my_username'? – 2342G456DI8

Problemi correlati