2015-08-25 19 views
6
OS Description: Ubuntu 14.04.3 LTS 
ssh: OpenSSH_6.6.1p1 Ubuntu-2ubuntu2.3, OpenSSL 1.0.1f 6 Jan 2014 

Non riesco a utilizzare più chiavi ssh per gitlab. L'errore che sto ottenendo èPiù chiavi ssh non funzionano

GitLab: The project you were looking for could not be found. 
fatal: Could not read from remote repository. 

Please make sure you have the correct access rights 
and the repository exists. 

Sono praticamente sicuro che ho fatto tutto nel modo giusto Questo è il mio file di configurazione

Host work gitlab.com 
    Hostname gitlab.com 
    IdentityFile ~/.ssh/ida_rsa 
    User git 

Host integrate gitlab.com 
    Hostname gitlab.com 
    IdentityFile ~/.ssh/ida_rsa_personal 
    User git 

I tasti vengono aggiunti automaticamente in ssh-agent, ma per rendere sicuri ho anche aggiunto la chiave manualmente

$ ssh-add -l 
2048 e7:08:d6:8c:00:28:31:f9:3f:21:4a:0f:4e:1e:ee:20 id_rsa (RSA) 
2048 ff:22:f6:90:2b:7c:9f:ed:45:41:df:79:06:de:fe:81 id_rsa_personal (RSA) 

mio ssh-agent è in corso anche

$ ssh-agent 
SSH_AUTH_SOCK=/tmp/ssh-uTC6tA5HMt1x/agent.4899; export SSH_AUTH_SOCK; 
SSH_AGENT_PID=4900; export SSH_AGENT_PID; 
echo Agent pid 4900; 

Permesso del tasto ssh

-rw------- 1 yogi yogi 1679 jun 25 15:38 id_rsa 
-rw------- 1 yogi yogi 1679 ago 25 10:53 id_rsa_personal 
-rw-r--r-- 1 yogi yogi 404 ago 25 10:53 id_rsa_personal.pub 
-rw-r--r-- 1 yogi yogi 391 jun 25 15:41 id_rsa.pub 

ho aggiunto il mio ssh chiave pubblica su gitlab.

Qualcuno potrebbe dirmi cosa mi manca?

Nota: - Ho notato che dalle mie due chiavi ssh, il tasto ssh in alto (id_rsa - e7: 08 ....) funziona bene.

$ ssh-add -l 
**2048 e7:08:d6:8c:00:28:31:f9:3f:21:4a:0f:4e:1e:ee:20 id_rsa (RSA)** 
2048 ff:22:f6:90:2b:7c:9f:ed:45:41:df:79:06:de:fe:81 id_rsa_personal (RSA) 

se aggiungo id_rsa_personal (ff: 22 ..) dopo id_rsa, oltre id_rsa_personal inizia a lavorare bene e id_rsa smette di funzionare.

$ ssh-add -l 
**2048 ff:22:f6:90:2b:7c:9f:ed:45:41:df:79:06:de:fe:81 id_rsa_personal (RSA)** 
2048 e7:08:d6:8c:00:28:31:f9:3f:21:4a:0f:4e:1e:ee:20 id_rsa (RSA) 

Penso che ssh-agent non sia in grado di scorrere le chiavi. Legge solo la prima chiave e si ferma. Si tratta di un bug in openssh? Se sì, qualsiasi soluzione alternativa?

Grazie

+0

qual è il comando che stai cercando di connettere a gitlab? Stai fornendo le chiavi attraverso l'agente o attraverso la configurazione?Se si desidera utilizzare solo un'identità specifica, assicurarsi di specificare anche l'opzione "IdentitiesOnly" – Jakuje

+0

Sto tentando di utilizzare git clone, git pull, git push. – shiva

+1

ssh-agent non accetta il primo, anche io sto riscontrando lo stesso problema con il mio ssh-key corretto in cima. – Zangetsu

risposta

9

È necessario avere ~/.ssh/config file di

file all'interno di

# Default GitHub user 
Host github.com 
    HostName github.com 
    PreferredAuthentications publickey 
    IdentityFile ~/.ssh/personalid 

# Work user account 
Host bitbucket.org 
    HostName bitbucket.org 
    PreferredAuthentications publickey 
    IdentityFile ~/.ssh/workid 

dettagli possono essere trovati nel link qui sotto https://confluence.atlassian.com/bitbucket/configure-multiple-ssh-identities-for-gitbash-mac-osx-linux-271943168.html

Se il dominio è lo stesso, uso diverso Host

Host work.gitlab.com 
    HostName gitlab.com 
    PreferredAuthentications publickey 
    IdentityFile ~/.ssh/id_rsa.work 

Host home.gitlab.com 
    HostName gitlab.com 
    PreferredAuthentications publickey 
    IdentityFile ~/.ssh/id_rsa.home 

Svuota cache

ssh-add -D 

Aggiungi tutte le chiavi SSH

ssh-add ~/.ssh/id_rsa.work 
ssh-add ~/.ssh/id_rsa.home 

impostare anche url tuoi repos' in (.git/config) di conseguenza, come indicato:

url = [email protected]:xxxxxxxxxx.git 
url = [email protected]:yyyyyyyyy.git 

Se il tuo file di configurazione ssh è come quello che ho suggerito.

+0

Ho già ho ~/.ssh/config file come ho menzionato nella mia domanda.Molto probabilmente si tratta di un bug con questa particolare versione di Ubuntu o ssh Sto usando più chiavi ssh in Windows e altri sistemi operativi basati su Linux senza alcun problema – shiva

+0

I ha ho modificato la mia risposta. Per favore guarda. L'utilizzo di host diversi sta funzionando per me. Basta cancellare la cache come aggiungere nuovamente le chiavi. – Zangetsu

+0

L'utilizzo di host diversi non ha funzionato. E anche dopo aver svuotato la cache con ssh-add -D, posso vedere le mie chiavi se faccio ssh-add -l. Quindi probabilmente la cache di compensazione non funziona. – shiva