2016-06-18 19 views
7

voglio usare 2 conti in Gitlab sito web, ogni account con uno ssh diversa chiavecome utilizzare più le chiavi SSH per più account gitlab con lo stesso host

ho generato le chiavi con successo e aggiungerle alla ~/.ssh cartella ho creato ~/.ssh/config file e utilizzare uno di loro, è funziona bene posso anche fare lo scambio tra i due tasti modificando il file

il problema è ~/.ssh/config: voglio usarli nello stesso tempo, ma tutti le esercitazioni che ho trovato prendere su diffe affitto host:/

in realtà i miei due conti sono nello stesso host

come posso modificare il file ~/.ssh/config di accettare due conti per lo stesso host

Nota: ho letto this question ma posso 't ottenere aiuto da esso

miei due conti sono username1 e username2 URL repo assomiglia: [email protected]:username1/test-project.git

Il mio attuale ~/.ssh/config di file:

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) Quando uso una chiave nel file ~/.ssh/config, tutto funziona perfettamente (ma è molto noioso per aggiornarlo ogni volta che voglio per cambiare l'utente che uso)

2) Quando uso questo le linee ssh -T [email protected] ssh -T [email protected] le sue opere buone e restituire un messaggio di benvenuto

Dal 1) e 2), penso che il problema è definitivamente dal file ~/.ssh/config, in particolare in Host variabile

Aggiornamento 2: (la risoluzione) la soluzione era quella di modificare il file .git/config da [remote "origin"] url = [email protected]:username1/test-project.git a [remote "origin"] url = [email protected]:username1/test-project.git

e fare lo stesso per il username2

+0

Ho letto, sto parlando di account diversi, nel mio caso voglio farlo nello stesso host:/ –

+0

"* Voglio utilizzare 2 account nel sito Web Gitlab *" ??? Il duplicato sta usando lo stesso host (devi solo sostituire github con gitlab.) C'è solo su github. – Jakuje

+0

usa 'github.com' e' ac2.github.com' ma nel mio caso gli stessi sono 'gitlab. com' senza sottodominio –

risposta

4

Hai la configurazione completa ssh.Prima di tutto, controlla se funziona:

ssh -T [email protected] 
ssh -T [email protected] 

dovrebbe riuscire in entrambi i casi. In caso contrario, i tasti non sono impostati correttamente. Verifica che le chiavi siano su gitlab per i rispettivi utenti.

Se funziona, passare al repository git e aprire .git/config. Avrà una parte come:

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

sostituirlo con

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

(o username1 se si desidera connettersi utilizzando questo nome utente). Quindi dovrebbe consentire di spingere.

+0

le prime due righe restituiscono 'GitLab: comando Disallowed' e somethims' ssh: Impossibile risolvere l'hostname gitlab.com-username1: Nome o servizio non noto' la differenza accade quando modifico il file '~/.ssh/config' ma comunque le chiavi sono a posto, perché quando uso una chiave in' ~/.ssh/config' come 'Host gitlab.com \t HostName gitlab.com \t git User \t IdentityFile ~/.ssh/id_rsa' il codice funziona bene:/e spingere i commit per gitlab quindi penso che il problema è io n il file di configurazione:/ ' –

+1

Forse senza' verifica'. Ma sì, sembra ok. Quindi correggi il file di configurazione. O c'è ancora qualcosa di poco chiaro? – Jakuje

+0

sì, come posso risolvere la configurazione: /, proverò senza verificare –

1

Utilizzare l'esatto ~/.ssh/config da sopra e aggiorna gli URL che utilizzi con git a [email protected]:username1/test-project.git per il primo utente e [email protected]:username2/test-project.git per il secondo (ad esempio, git clone [email protected]:username1/test-project.git).

SSH cerca l'alias gitlab.com-username1 in ~/.ssh/config e utilizzerà il nome host e il file di chiave SSH corretti.

Un altro modo sarebbe utilizzare un solo utente per spingere/tirare e concedere i diritti richiesti a questo utente.

+0

'Host git[email protected]: username1 /test-project.git HostName gitlab.com git User IdentityFile ~/.ssh/id_rsa Host [email protected]: nomeutente1/test-project.git HostName gitlab.com git User IdentityFile ~/.ssh/id_rsa_username2' –

+0

lo aggiorno in questo modo ma non succede nulla, inoltre dovrei specificare ogni repo nel file di configurazione? c'è un modo per impostare solo il nome utente:/ –

+0

Usa il file esatto .ssh/confit dalla tua domanda ma usa le urne menzionate nei tuoi comandi git. – MrTux

Problemi correlati