Domanda

Sono su Mac Snow Leopard e ho appena installato git.

Ho appena provato

git clone git@thechaw.com:cakebook.git

Ma questo mi dà questo errore:

Initialized empty Git repository in `/Users/username/Documents/cakebook/.git/`
Permission denied (publickey).
fatal: The remote end hung up unexpectedly

Cosa mi manca?
Ho anche provato a fare ssh-keygen senza passfase ma ancora stesso errore.

È stato utile?

Soluzione

L'utente non ha già generato una coppia di chiavi pubbliche/private SSH prima?

Queste informazioni stanno funzionando su TheChaw ma possono essere applicate a tutti gli altri repository GIT che supportano l'autenticazione SSH Pubkey. (Vedere Gitolite, Gitlab o github per esempio.)

Primo inizio impostando il tuo set di coppie di chiavi pubbliche/private. Questo può utilizzare DSA o RSA, quindi praticamente qualsiasi chiave impostata funzionerà. Sulla maggior parte dei sistemi è possibile utilizzare SSH-Keygen.

  • Per prima cosa ti consigliamo di CD nella tua directory .SSH. Apri il terminale ed esegui:

    cd ~/.ssh && ssh-keygen

  • Successivamente devi copiarlo negli appunti.
    • Su OS X Run: cat id_rsa.pub | pbcopy
    • Su Linux Run: cat id_rsa.pub | xclip
    • Su Windows (tramite Cygwin/Git Bash) Esegui: cat id_rsa.pub | clip
  • Aggiungi la tua chiave al tuo account tramite il sito Web.
  • Infine imposta il tuo .GitConfig.
    • git config --global user.name "bob"
    • git config --global user.email bob@...(Non dimenticare di riavviare la riga di comando per assicurarti che la configurazione sia ricaricata)

Ecco, dovresti essere bravo da clonare e checkout.

Ulteriori informazioni sono disponibili su https://help.github.com/articles/Generanting-Ssh-Keys (grazie a @lee whitney) -

L'utente ha generato prima una coppia di chiavi pubbliche/private SSH?

  • Controlla quale chiave è stata autorizzata sulle impostazioni dell'account GitHub o Gitlab
  • dice quale tasto privato corrispondente deve essere associata al computer locale

eval $(ssh-agent -s)

Racconta dove si trovano le chiavi

ssh-add ~/.ssh/id_rsa

Altri suggerimenti

Risoluzione più ampia dei problemi e persino fissaggio automatizzato possono essere eseguiti con:

ssh -vT git@github.com

Fonte: https://help.github.com/articles/error-permission-denied-publickey/

Questo errore può avvenire quando si accede all'URL SSH (leggi/scrittura) invece dell'URL di sola lettura Git ma non hai accesso a scrittura a quel repository.

A volte vuoi solo clonare il tuo repository, ad esempio distribuire su un server. In questo caso hai effettivamente bisogno di un accesso di sola lettura. Ma da allora il tuo Repo, GitHub può visualizzare URL SSH se questa è la tua preferenza. In questa situazione, se la chiave pubblica del tuo host remoto non è nelle chiavi GitHub SSH, il tuo accesso verrà negato, che dovrebbe accadere.

Un caso equivalente è quando provi a clonare il repository di qualcun altro a cui non hai accesso a scrivere con SSH URL.

In una parola, Se il tuo intento è di solo clonare un repository, usa l'URL HTTPS (https://github.com/{user_name}/{project_name}.git) invece di SSH URL (git@github.com:{user_name}/{project_name}.git), che evita (non necessaria) convalida della chiave pubblica.


AGGIORNAMENTO: GitHub sta visualizzando HTTPS come protocollo predefinito e questa mossa può probabilmente ridurre il possibile uso improprio degli URL SSH.

L'aiuto di GitHub collegamento mi ha aiutato a risolvere questo problema. Sembra che la chiave SSH non sia stata aggiunta all'agente SSH. Questo è quello che ho finito per fare.

Comando 1:

Assicurarsi che SSH-agent sia abilitato. Il comando avvia l'agente SSH sullo sfondo:

eval "$(ssh-agent -s)"

Comando 2:

Aggiungi la tua chiave SSH all'agente SSH:

ssh-add ~/.ssh/id_rsa

Questo funziona per me:

ssh-add ~/.ssh/id_rsa

Ha ottenuto lo stesso rapporto di errore.

Risolto invece l'utilizzo di HTTP. Dal momento che non voglio impostare "SSH Keys" per un PC di prova.

Cambia URL in HTTP quando clone:

git clone https://github.com/USERNAME/REPOSITORY.git

Il mio problema è un po 'diverso: Ho impostato URL quando aggiungo un repository locale esistente al telecomando, usando:

git remote add origin ssh://github.com/USERNAME/REPOSITORY.git

Per risolverlo, reimpostare URL su HTTP:

git remote set-url origin https://github.com/USERNAME/REPOSITORY.git

A proposito, puoi controllare il tuo URL usando il comando:

git remote -v
origin  https://github.com/USERNAME/REPOSITORY.git (fetch)
origin  https://github.com/USERNAME/REPOSITORY.git (push)

Spero che questo aiuti qualcuno come me. :D

Si noti che (almeno per alcuni progetti) Devi avere un account GitHub con una chiave SSH.

Guarda le chiavi elencate nel tuo agente di autenticazione (ssh -add -l)
(Se non ne vedi nessuno, aggiungi una delle tue chiavi esistenti con SSH-ADD/PATH/TO/TUA/THE CHIARA (EG: ssh-add ~/.ssh/id_rsA))
(Se non hai chiavi, crea prima una. Vedi: http://rcsg-gsir.imsb-dsgi.nrc-cnrc.gc.ca/documents/internet/node31.html o solo Google SSH-Keygen)

Per verificare di avere una chiave associata al tuo account GitHub:

Vai a: https://github.com/settings/sssh

Dovresti vedere almeno una chiave con una chiave hash che corrisponde a uno degli hash che hai visto quando hai digitato ssh -add -l Solo un minuto fa.

Se non lo fai, aggiungi uno, quindi riprova.

Avevo una leggera situazione diversa, avevo effettuato l'accesso a un server remoto e stavo usando Git sul server, quando ho eseguito qualsiasi comando git ho ricevuto lo stesso messaggio

   Permission denied (publickey).
   fatal: The remote end hung up unexpectedly

Il modo in cui l'ho risolto è stato modificando il file /etc /ssh_config sul mio Mac. da

ForwardAgent no 

a

ForwardAgent yes

Stavo lottando con lo stesso problema che è quello che ho fatto e sono stato in grado di clonare il repository. Ho seguito queste procedure per iMac.

Primo passo: controllo se abbiamo già la chiave SSH pubblica.

  1. Terminale aperto.
  2. accedere ls -al ~/.ssh per vedere se sono presenti tasti ssh esistenti:

Controlla l'elenco della directory per vedere se hai già un tasto SSH pubblico.Default Public sono uno dei seguenti d_dsa.pub, id_ecdsa.pub, id_ed25519.pub, id_rsa.pub

Se non trovi, vai al passaggio 2 altrimenti segui il passaggio 3

Passaggio 2: generazione di chiave SSH pubblica

  1. Terminale aperto.
  2. Immettere il comando di followong con il tuo indirizzo email valido che usi per github ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
  3. Vedrai che seguirai nel terminale Generating public/private rsa key pair. Quando richiede di farlo"Enter a file in which to save the key," premere Invio. Questo accetta la posizione del file predefinita. Quando richiede di farlo Enter a file in which to save the key (/Users/you/.ssh/id_rsa): [Press enter] Basta premere Invio di nuovo. Nel prompt, digitare una passphrase sicura.
  4. Enter passphrase (empty for no passphrase): [Type a passphrase] Premi Invio se non vuoi Enter same passphrase again: [Type passphrase again] Premere di nuovo INVIO

Questo genererà id_rsa.pub

Passaggio 3: aggiunta della chiave SSH all'agente SSH

  1. Tipo interminico eval "$(ssh-agent -s)"
  2. Aggiungi la tua chiave SSH all'agente SSH. Se si utilizza una chiave SSH esistente anziché generare una nuova chiave SSH, è necessario sostituire ID_RSA nel comando con il nome del file della chiave privata esistente. Immettere questo comando $ ssh-add -K ~/.ssh/id_rsa

Ora copia la chiave SSH e aggiungila anche all'account GitHub

  1. Nel terminale immettere questo comando con il nome del file ssh pbcopy < ~/.ssh/id_rsa.pub Questo copierà il file negli appunti ora apri il tuo account github vai a Impostazioni> Tasti SSH e GPG> Nuova chiave SSH Immettere il titolo e incollare il tasto dagli appunti e salvarlo. Voilà hai finito.

Ho riscontrato lo stesso problema a causa di cui mi pensavo la differenza tra Ssh e Https è

https://github.com/USERNAME/REPOSITORY.git

ssh://github.com/USERNAME/REPOSITORY.git

Quindi sono cambiato da Https a Ssh Solo cambiando https:// a ssh:// Nulla alla fine dell'URL è stato cambiato.

Ma la verità è:

https://github.com/USERNAME/REPOSITORY.git

git@github.com:USERNAME/REPOSITORY.git

Il che significa che ho cambiato ssh://github.com/USERNAME/REPOSITORY.git a git@github.com:USERNAME/REPOSITORY.git funziona.

Stupido errore ma la speranza aiuta qualcuno!

Le istruzioni GIT di base non hanno fatto riferimento alle cose chiave SSH. Seguendo alcuni dei collegamenti sopra, ho trovato una pagina di aiuto GIT che spiega, passo-passo, esattamente come farlo per vari sistemi operativi (il collegamento rileverà il tuo sistema operativo e reindirizzerà, di conseguenza):

http://help.github.com/setup-git-direct/

Cammina attraverso tutto il necessario per GitHub e fornisce anche spiegazioni dettagliate come "perché aggiungere una passphrase durante la creazione di una chiave RSA". Ho pensato di pubblicarlo, nel caso in cui aiuti qualcun altro ...

Su Windows, assicurati che tutte le tue app siano d'accordo a casa. MSYS sorprendentemente non lo farà per te. Ho dovuto impostare una variabile di ambiente perché SSH e Git non potevano essere d'accordo su dove fosse la mia directory .SSH.

Sei in un ambiente aziendale? È possibile che le variabili del sistema siano cambiate di recente? Per questo Quindi rispondi, le chiavi ssh vivono a %HOMEDRIVE%%HOMEPATH%\.ssh\id_rsa.pub. Quindi se %HOMEDRIVE% Di recente è cambiato, Git non sa dove cercare la tua chiave e quindi tutte le cose di autenticazione.

Prova a correre ssh -vT git@github.com. Prendi nota di dove il identity file si trova. Per me, questo stava indicando non al mio normale \Users\MyLogin Ma piuttosto su un'unità di rete, a causa di una modifica delle variabili di ambiente spinte a livello di rete.

La soluzione? Dal mio nuovo %HOMEDRIVE% Ha le stesse autorizzazioni dei miei file locali, ho appena spostato la mia cartella .SSH lì e l'ho chiamato un giorno.

Ragazzi, è così che ha funzionato per me:

1- Apri terminale e vai all'utente [vedi immagine allegata

2- Apri la cartella .SSH e assicurati che non abbia alcun file come Id_Rsa o ID_RSA.PUB altrimenti a volte non riscrivi correttamente i file

3 -Git -Version [Controlla l'installazione e la versione Git

4- GIT Config-Global user.mail "Il tuo ID e-mail"

5- GIT Config-Global user.Name "Il tuo nome"

6- GIT config-list [Assicurati di aver impostato il tuo nome ed e-mail

7- CD ~/.SSH

8- ssh-keygen, richiede il salvataggio del file, consentirlo

9- Cat ~/.ssh/Id_rsa.pub [Accedi alla chiave pubblica e copia la chiave per le impostazioni di Gerrit

Nota: Non dovresti usare il comando sudo con Git. Se hai un ottimo motivo devi usare Sudo, assicurati di usarlo con ogni comando (probabilmente è meglio usare SU per ottenere una shell come radice a quel punto). Se genera chiavi SSH senza sudo e quindi provi a utilizzare un comando come Sudo git push, non userai le stesse chiavi che hai generato

enter image description here

enter image description here

Uno dei modi più semplici

Vai al terminale

  git push <Git Remote path> --all

Oltre alla risposta di Rufinus, il collegamento per copiare il tasto SSH negli appunti in finestre è:

  • type id_rsa.pub | clip

Rif:

Se hai più di una chiave potresti dover faressh-add private-keyfile

Ho appena riscontrato questo problema durante l'impostazione del mio progetto attuale e nessuno dei precedenti funziona. Quindi ho provato a guardare cosa sta realmente accadendo nell'elenco di debug usando il comando ssh -vt git@github.com. Ho notato che il mio nome file a chiave privata non è nell'elenco. Quindi rinominare il nome del nome della chiave privata a "id_rsa" fare il lavoro. Spero che questo possa aiutare.

È abbastanza semplice. Digita il comando seguente

ssh-keygen -t rsa -b 4096 -C "youremailid@yourdomain.com"

Genera la chiave SSH. Apri il file e copia il contenuto. Vai alla pagina di impostazione GitHub e fai clic sul tasto SSH. Fai clic su Aggiungi nuova chiave SSH e incolla il contenuto qui. Ecco fatto :) non dovresti più vedere il problema.

Ho colpito questo errore perché dovevo dare le autorizzazioni di directory di lavoro 700:

chmod -R 700 /home/ec2-user/

Stavo ottenendo un simile Autorizzazione negata (publickey) Errore Quando si cerca di eseguire un makefile.

In alternativa ai passaggi SSH sopra, è possibile installare il github nativo per l'applicazione MAC.

Clic Scarica github per mac da - https://help.github.com/articles/setup-git#platform-mac

Una volta completato la configurazione con il tuo account Git Hub (ho anche installato gli strumenti della riga di comando GIT ma non sono sicuro se questo passaggio è richiesto o meno), ho ricevuto un'e -mail -

GitHub] Una nuova chiave pubblica è stata aggiunta al tuo account

E il mio errore è stato risolto.

Stavo ottenendo lo stesso errore. Il mio problema era mescolare su sudo.

Non riuscivo a creare la directory in cui stavo clonando automaticamente senza prefissi il comando clone git con sudo. Quando l'ho fatto, tuttavia, le mie chiavi SSH non sono state correttamente referenziate.

Per risolverlo, ho impostato le autorizzazioni tramite CHMOD sulla directory genitore che volevo contenere il mio clone in modo da poterlo scrivere. Poi ho eseguito il clone git senza un prefisso sudo. Poi ha funzionato! Dopodiché ho cambiato le autorizzazioni. Fatto.

Stavo ricevendo questo errore perché ho generato le chiavi SSH con l'e -mail sbagliata. Sono stato in grado di connettermi usando SSH, ma non usando Git. La soluzione era di rigenerare le chiavi utilizzando l'indirizzo e -mail principale del mio account GitHub.

Ha funzionato per me.

La tua chiave pubblica viene salvata nel file ID_RSA.PUB; ed è la chiave che carichi sul tuo account. Puoi salvare questa chiave sugli appunti eseguendo questo:

pbcopy <~/.ssh/id_rsa.pub

  • Copia il tasto SSH negli appunti, torna al portale Web.
  • Nel campo della chiave SSH, incolla la tua chiave SSH.
  • Nel campo Nome, fornire un nome per la chiave.
  • Salva .

Ha funzionato per me

ssh -i [your id_rsa path] -T github@github.com

La soluzione più semplice a questo, quando stai cercando di spingere in un repository con un nome utente diverso è:

 git remote set-url origin https://USERNAME@github.com/USERNAME/PROJECTNAME.git

Questo strano errore, nel mio caso, era un sintomo di gnome-keyring-daemon Nominare in modo errato la chiave a cui richiedeva una password.

Seguo i passaggi delineati qui e inserisco la password tramite il terminale. L'errore, alias l'interfaccia GUI confusa, è stato risolto. Vedere: https://askubuntu.com/questions/3045/how-to-disable-gnome-keyring

Nel mio caso, ho reinstallato Ubuntu e il nome utente viene modificato dal precedente. In questo caso la chiave SSH generata differisce anche rispetto a quella precedente.

Il problema è stato risolto solo copia l'attuale chiave pubblica SSH, nel repository. La chiave sarà disponibile nel tuo utente /home/.ssh/id_rsa.pub

Nel mio Mac l'ho risolto con:

cp ~/.ssh/github_rsa ~/.ssh/id_rsa

Per qualche motivo il mio git si è fermato a trovare la chiave privata in github_rsa file. Questo è successo in un repository specifico. Voglio dire che in altri repository Git ha continuato a funzionare normalmente.

Penso che sia un bug.

Potrei trovare questo comportamento in esecuzione ssh -vT git@github.com

Usa il collegamento SSH da GitHub ma assicurati di non aggiungerlo con SSH, usa solo ciò che la scheda SSH su Git Hub ti dà per clonare il tuo repository.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top