Hvordan løse Permission denied (publickey) feil når du bruker Git?

Jeg er på Mac Snow Leopard og jeg har nettopp installert git.

Jeg har nettopp prøvd

git clone git@thechaw.com:cakebook.git

men det gir meg denne feilen:

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

Hva er det jeg går glipp av?
Jeg har også prøvd å gjøre ssh-keygen uten passphase, men fortsatt samme feil.

Løsning

brukeren ikke har generert et ssh offentlig/privat nøkkelpar før brukeren ikke har generert et ssh offentlig/privat nøkkelpar før?

Denne informasjonen fungerer på theChaw, men kan brukes på alle andre git-repositorier som støtter SSH-pubkey-autentisering. (Se for eksempel gitolite, gitlab eller github).

Begynn først med å sette opp ditt eget offentlige/private nøkkelpar. Dette

kan bruke enten DSA eller RSA, så i utgangspunktet vil hvilken som helst nøkkel du setter opp fungere. På de fleste systemer kan du bruke ssh-keygen.

  • Først ønsker du å cd inn i .ssh-katalogen din. Åpne terminalen og kjør:

    cd ~/.ssh & & ssh-keygen

  • Deretter må du kopiere dette til utklippstavlen.
  • På OS X kjører du: 'cat id_rsa.pub | pbcopy'
  • På Linux kjøres: cat id_rsa.pub | xclip (på engelsk)
  • På Windows (via Cygwin/Git Bash) kjøres: cat id_rsa.pub | klipp
  • Legg nøkkelen til kontoen din via nettstedet.
  • Til slutt konfigurerer du .gitconfig.
  • git config --global user.name "bob"
  • git config --global bruker.email bob@... (ikke glem å starte kommandolinjen på nytt for å sikre at konfigurasjonen lastes inn på nytt)

Det er det du skal være god til å klone og sjekke ut.

Ytterligere informasjon finner du på https://help.github.com/articles/generating-ssh-keys (takk til @Lee Whitney)

Brukeren har generert et ssh offentlig/privat nøkkelpar før ?

  • sjekk hvilken nøkkel som er autorisert i github- eller gitlab-kontoinnstillingene.
  • forteller hvilken tilsvarende privat nøkkel som må tilknyttes fra din lokale datamaskin.

eval $(ssh-agent -s)

forteller hvor nøklene befinner seg

ssh-add ~/.ssh/id_rsa (legg til ~/.ssh/id_rsa)

Kommentarer (17)

Mer omfattende feilsøking og til og med automatisert fiksing kan gjøres med:

ssh -vT git@github.com

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

Kommentarer (15)

De grunnleggende GIT-instruksjonene refererte ikke til SSH-nøkkelgreiene. Ved å følge noen av lenkene ovenfor fant jeg en git-hjelpeside som forklarer, trinn for trinn, nøyaktig hvordan du gjør dette for forskjellige operativsystemer (lenken vil oppdage operativsystemet ditt og omdirigere deretter):

http://help.github.com/set-up-git-redirect/

Den går gjennom alt som trengs for GITHub og gir også detaljerte forklaringer som "hvorfor legge til en passordfrase når du oppretter en RSA-nøkkel." Jeg tenkte jeg skulle legge den ut, i tilfelle det hjelper noen andre ...

Kommentarer (0)