GitHub: Odmowa dostępu (publickey). fatal: Odległy koniec odłożył słuchawkę nieoczekiwanie


197

Postępowałem zgodnie z poniższymi instrukcjami, aby przesłać projekt.

Konfiguracja globalna:

 Download and install Git
  git config --global user.name "Your Name"
  git config --global user.email tirenga@gmail.com
  Add your public key


Next steps:

  mkdir tirengarfio
  cd tirengarfio
  git init
  touch README
  git add README
  git commit -m 'first commit'
  git remote add origin git@github.com:tirenga/tirenga.git
  git push origin master

Ale pojawia się ten błąd:

Odmowa dostępu (publickey). fatal: Odległy koniec odłożył słuchawkę nieoczekiwanie

Odpowiedzi:


24

Dla mnie problemem było wykonanie klonowania przez sudo.

Jeśli sklonujesz do katalogu, w którym masz uprawnienia użytkownika (/ home / user / git), będzie działać poprawnie.

(Objaśnienie: Uruchomienie polecenia jako superużytkownik nie będzie działać z tym samym kluczem publicznym, co uruchomienie polecenia jako użytkownik. Dlatego Github odrzucił połączenie.)

To rozwiązanie wymaga już skonfigurowania klucza SSH: https://help.github.com/articles/generating-ssh-keys


1
to rozwiązanie wydaje się bardzo bliskie temu, co już opublikował learner_19
Erik

125

Musiałem dodać mój klucz publiczny do github. https://help.github.com/articles/generating-ssh-keys


3
W przypadku korzystania z komputera z systemem Linux, kopiowanie zawartości pliku id_rsa.pub może być trudne, jeśli używasz emacsa lub nano. Spróbuj skopiować za pomocą edytora tekstu (Notatnik, TextEdit lub gedit poradzą sobie dobrze). Jeśli nie masz żadnego z nich, możesz użyć vima.
Gokul NK

4
@GokulNK Inną alternatywą jest użycie xclip, zgodnie z zaleceniami strony.
w4etwetewtwet

7
cat ~/.ssh/id_rsa.pubmoże być opcją? : p
torr

możesz użyć pbcopy < ~/.ssh/id_rsa.pubw OS X, a następnie wkleić ( cmd+v) na stronie github.
user3648895


28

po utworzeniu pary kluczy RSA należy dodać ją do SSH, używając:

ssh-add ~/.ssh/id_rsa

lub gdziekolwiek stworzyłeś swoją parę kluczy rsa.


Ratownik! Trafiłeś w gwóźdź. Dziękuję
Tash Pemhiwa

Uzgodnione, ważne jest, aby najpierw sprawdzić, czy ssh-agent jest uruchomiony (dokumentacja GitHub go zawiera) i czy klucz został dodany do jego kluczy. Jednak coś innego, co warto sprawdzić, ponieważ może uniemożliwić użycie klucza, nawet jeśli znajduje się w breloku ssh-agent, to odpowiedni tryb dostępu do klucza prywatnego : powinien to być 0600 ( chmod 600 ~/.ssh/id_rsaw zasadzie).
chikamichi

18

Wpisz następujące polecenie, używając swojej nazwy użytkownika i nazwy repozytorium:

git clone https://github.com/{user name}/{repo name}

w Ubuntu działa to doskonale.


Myślę, że protokół https jest potrzebny do bezpiecznego połączenia, dlatego działa. Git @ github .. NIE jest bezpieczny dla urządzenia.
Timo,

16

Po długim czasie dostałem rozwiązanie w tutorialach.

Postępowałem zgodnie z samouczkiem github na ten link -> https://help.github.com/articles/error-permission-denied-publickey i byłem w stanie połączyć się na każdym kroku. Ale kiedy próbowałem uruchomić mistrza pochodzenia push -u , otrzymałem ten błąd:

Odmowa dostępu (publickey). fatal: Nie można odczytać ze zdalnego repozytorium.

Upewnij się, że masz odpowiednie prawa dostępu

Tak to naprawiłem !! Przejdź do katalogu projektu za pomocą terminala i sprawdź

$git remote -v

Otrzymasz coś takiego:

origin  ssh://git@github.com/yourGithubUserName/yourRepo.git (fetch)
origin  ssh://git@github.com/yourGithubUserName/yourRepo.git (push)

Jeśli używasz czegoś innego niż git@github.com , otwórz plik konfiguracyjny w katalogu git, wpisując polecenie:

vi .git/config

I skonfiguruj linię

[remote "origin"]

url = ssh://git@github.com/yourGithubUserName/yourRepo.git

fetch = +refs/heads/*:refs/remotes/origin/

Dla mnie to faktycznie działało, zastępując git@github.com <nazwaużytkownika> @ github.com
Eduard Feicho

Polecenie „git remote -v” nie jest tym, którego wcześniej widziałem, i okazało się, że było kluczem do zrozumienia, dlaczego jedno z moich repozytoriów działa, podczas gdy drugie zwraca „Odmowa zezwolenia (publickey)”, gdy ja Próbowałem uruchomić „git ls-remote”. Bardzo przydatne. Dzięki.
Kevin

6

W moim przypadku musiałem skonfigurować klucz publiczny dla innego użytkownika, ponieważ miałem go już dla mojego głównego użytkownika. po zmianie użytkowników i wykonaniu poleceń z powyższego łącza mogłem bez problemu przeprowadzić konfigurację serwera testowego.


Podobny problem - zalogowałem się jako root (i przeoczyłem to), a nie jako rzeczywisty użytkownik skonfigurowany za pomocą SSH. Nie można uzyskać zmiany do niczego. Powrót do prawidłowego rozwiązania problemu rozwiązanego przez użytkownika!
Richard Hollis,

1
Zdecydowany brak wyjaśnienia, jak faktycznie wykonać poprawkę.
Richard

Nie powinienem tego przeliterować, to dla ciebie Richard! Korzystałem z mojego konta użytkownika innego niż root. Musiałem wykonać polecenie z adresu URL pomocy github ( help.github.com/articles/generating-ssh-keys#platform-linux ) z prefiksem sudo.
Dan Power

5

Miałem ten problem, ale żadne z powyższych rozwiązań nie zadziałało. Mógłbym sklonować i pobrać, ale nie mogłem naciskać. W końcu zorientowałem się, że problem tkwi urlw moim .git/config, powinien to być:

git@github.com:<username>/<project>

(nie ssh://github.com/<username>/<project>.gitlub https://github.com/<username>/<project>.git).


2
W przypadku połączenia SSH git@częścią jest magia. Tak ssh://git@github.com/username/project.gitteż działa.
biskup

.git jest naprawdę ważny. To rozwiązanie działa idealnie.
Onur Göker

5

Biorąc pod uwagę, że żadna z odpowiedzi tutaj nie zadziałała, w końcu wyśledziłem mój problem z połączeniem z Bitbucket (lub Github, nie ma znaczenia w tym przypadku) za pomocą ssh -vT git@bitbucket.org.

W moim przypadku błąd był spowodowany użyciem klucza DSA zamiast RSA i najwyraźniej mój klient SSH już na to nie pozwala.

debug1: Pomijanie klucza ssh-dss /c/Users/USER/.ssh/id_dsa w przypadku braku w PubkeyAcceptedKeyTypes

Rozwiązaniem było dodanie tego do .ssh / config:

Host *
    PubkeyAcceptedKeyTypes +ssh-dss

To elegancko dołącza typ klucza ssh-dss do wszystkich istniejących akceptowanych typów kluczy publicznych, a po tym, git może teraz bez problemu ssh do Bitbucket.


To było dla mnie rozwiązanie na niestabilnej maszynie Debiana w grudniu 2015 roku. Ograniczyłem ją do „Host bitbucket.org”, ponieważ miałem już do tego wpis, aby wymusić wybór tożsamości.
bitmusher

3

Mój problem polegał na tym, że próbowałem nadać mojemu kluczowi SSH NAZWĘ SZCZEGÓŁOWĄ przy każdym wejściu ssh-keygenna terminal Mac.

Rozwiązałem problem, pozostawiając po prostu nazwę generowaną przez „ssh-keygen” = id_rsa. Skończysz z 2 kluczami w folderze .ssh na komputerze Mac id_rsa, który jest kluczem prywatnym i id_rsa.pubkluczem publicznym. Następnie skopiowałem i zapisałem kod z id_rsa.pubustawień mojego konta GitHub i to było to. Problem rozwiązany.


Dla mnie to samo. Pozostawienie pustej nazwy rozwiązało problem. Dzięki.
Berk

Człowieku, zrobiłeś mój dzień! 2 tygodnie z konsolą z powodu określonych nazw kluczy! Dzięki!
eilas

Cieszę się, że pomogło! @eilas
Paopao

Powodem tego jest, ponieważ działa na większości systemów domyślne klucze prywatne ( ~/.ssh/id_rsa, ~/.ssh/id_dsai ~/.ssh/identity) są automatycznie dodawane do agenta uwierzytelniania SSH.
maffo


2

Dodanie klucza publicznego jest rozwiązaniem. Aby wygenerować klucze ssh: https://help.github.com/articles/generating-ssh-keys zawiera instrukcje krok po kroku.

Problem może się jednak utrzymywać, jeśli klucz nie zostanie wygenerowany w prawidłowy sposób. Uważam, że jest to również przydatny link: https://help.github.com/articles/error-permission-denied-publickey

W moim przypadku problem polegał na tym, że generowałem klucz ssh bez użycia sudo, ale podczas używania poleceń git musiałem używać sudo. Ten komentarz w powyższym linku „Jeśli generujesz klucze SSH bez sudo, to kiedy spróbujesz użyć polecenia takiego jak sudo git push, nie będziesz używać wygenerowanego klucza SSH”. pomogło mi.

Rozwiązaniem było to, że musiałem używać sudo zarówno z poleceniami generującymi klucze, jak i poleceniami git. Lub dla innych, gdy nigdzie nie potrzebują sudo, nie używaj go w żadnym z dwóch kroków. (generowanie kluczy i polecenia git).


1

Napotkałem podobny problem podczas uruchamiania SSH lub Git Clone w systemie Windows. Poniższe ustalenia pomagają rozwiązać mój problem:

  • Po uruchomieniu „konfiguracji rhc” lub innych metod ssh w celu wygenerowania klucza ssh utworzy on plik klucza prywatnego id_rsa w folderze .ssh w folderze domowym, domyślnie jest to C: \ User \ UserID
  • Git dla systemu Windows ma własny folder .ssh w katalogu instalacyjnym. Po uruchomieniu git / ssh będzie szukał pliku klucza prywatnego id_rsa w tym folderze
  • Rozwiązano problem, kopiując id_rsa z folderu domowego .ssh do folderu .ssh w katalogu instalacyjnym git

Myślę też, że istnieje sposób, aby „powiedzieć” gitowi, aby używał domyślnego folderu .ssh w folderze domowym, ale nadal muszę dowiedzieć się, jak to zrobić.


1

Dla mnie działało to tak:

W GitHub zmieniłem sshlink na https, a następnie wydałem następujące polecenia:

$ git init
$ git remote add origin https:...
$ git add .
$ git commit -m "first commit"
$ git push origin master

0

Użyj ubuntu w sklepie Windows

podsystem Windows dla systemu Linux

, Twój git push będzie działał na różnych kontach.


0

Jeśli używasz maszyny linux, sprawdź,

  • czy masz zainstalowany openssh
  • jeśli tak, to czy masz istniejący klucz publiczny, w przeciwnym razie będziesz musiał go wygenerować.
  • jest twój klucz publiczny dodany do twojego konta github.

Generowanie nowych kluczy SSH i dodawanie ich do mojego konta Github rozwiązało mój problem. Możesz zajrzeć na tę stronę po więcej szczegółów. GitHelp .


0

Możesz spróbować zmienić połączenie typu na rozgałęzione z ssh na https.

  1. nano project_path/.git/config
  2. Zamień git@github.com:username/repository.gitnahttps://username@github.com/username/repository_name.git
  3. Zapisz plik ctrl+o

Następnie możesz spróbować git pullbez klucza publicznego



-1

Szybkim sposobem na rozwiązanie tego problemu, jeśli używasz komputera Mac, jest wylogowanie się z aplikacji OSX i ponowne zalogowanie.


-1

Mój problem polegał na tym, że nie działało ono z hasłem na moim kluczu prywatnym.

Mam nadzieję, że komuś pomoże.



-3

Próbowałem wspomnianych rozwiązań, ale nadal nie udało mi się. Znalazłem rozwiązanie, które ostatecznie pracował dla mnie tutaj - usuwanie następnie ponowne dodanie linku zdalnego


-4

Miałem ten sam problem w systemie Windows. Zmieniłem SSH na HTTPS i uruchomiłem Git PUSH.

git push -u origin master
Username for 'https://github.com': <Github login email>
Password for <Github login>: xxx

Odnoszący sukcesy! mam nadzieję że to pomoże.


Chociaż może to być obejście, nie rozwiązuje początkowego problemu.
maffo
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.