2015-07-27 26 views
5

Una informazione molto probabilmente rilevante è che ho una configurazione ssh personalizzata configurata per bitbucket. Nel mio file '.ssh/config' Ho il seguente:Bitbucket ssh chiave pubblica viene negata, ma il loro test ssh si connette senza alcun problema

[[email protected]]$ cat ~/.ssh/config 
Host bitbucket 
    Hostname  bitbucket.org 
    IdentityFile /home/ivanna/.ssh/id_rsa_bitbucket 
    IdentitiesOnly yes 

I permessi su questo file sono sicuramente corretta per quanto ssh è interessato (io uso attivamente altre voci nel file di configurazione). Ora, quando ho aggiunto l'origine remota in git ho usato bitbucket invece di bitbucket.org:

git remote add origin bitbucket:ivanna/my-repo.git 

ma quando provo a spingere ricevo il seguente errore:

Permission denied (publickey). 
fatal: Could not read from remote repository. 

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

Così sembra che I didn aggiungere la mia chiave pubblica o qualcosa del genere, giusto? Ma sicuramente l'ho fatto. E quando cerchi ulteriori informazioni trovi questa pagina sull'errore (https://confluence.atlassian.com/pages/viewpage.action?pageId=302811860). E quando faccio quello che dicono di fare per controllare la chiave:

[[email protected]]$ ssh -T [email protected] 
logged in as ivanna. 

You can use git or hg to connect to Bitbucket. Shell access is disabled. 

Può accedere bene, a quanto pare. Quindi ... perché non spinge il lavoro? Il collegamento sopra menziona che potrebbe essere un problema di autorizzazioni sul progetto stesso, ma ho impostato le autorizzazioni come suggerivano le persone e non ha fatto nulla. Qualcuno sa cosa sta succedendo?

risposta

6
ssh -T [email protected] 

si utilizza [email protected] quando si accede via SSH, ma alla distanza URL che aggiungi a Git, non specificare un nome utente. Poiché anche la configurazione non ne include uno, Git non saprà con quale nome utente accedere.

modificare l'URL a questo:

git remote add origin [email protected]:ivanna/my-repo.git 

In alternativa, è possibile aggiungere l'utente alla configurazione SSH:

Host bitbucket 
    Hostname  bitbucket.org 
    User   git 
    IdentityFile /home/ivanna/.ssh/id_rsa_bitbucket 
    IdentitiesOnly yes 
+0

Grazie, è stato imbarazzante. – Ivanna

3

Se avete fatto queste cose:

git remote add origin bitbucket:ivanna/my-repo.git 

Non hai detto git che ha bisogno di connettersi come il qualcosa di diverso il nome utente. Si potrebbe fare questo nel file .ssh/config in questo modo:

Host bitbucket 
    User git 
    Hostname  bitbucket.org 
    IdentityFile /home/ivanna/.ssh/id_rsa_bitbucket 
    IdentitiesOnly yes 

o nella vostra git remote add linea di comando come questo:

git remote add origin [email protected]:ivanna/my-repo.git 
+0

Beh, è ​​'git @', sta usando non git 'hg' . – Will

+0

Se vai a leggere la domanda (con l'output di bitbucket) vedrai che dovrebbe funzionare. Dal momento che l'OP sta usando 'hg @' nella domanda, mi sono bloccato con quello. Sono d'accordo che è confuso. Aggiornerò la risposta – larsks

+0

Ah, capisco. Grazie per il chiarimento! – Will