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 [email protected]
  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 [email protected]: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

ziiweb
źródło

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

Smundo
źródło
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

ziiweb
źródło
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.

Sergio Viera
źródło
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.

rahul_pratap
źródło
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://[email protected]/yourGithubUserName/yourRepo.git (fetch)
origin  ssh://[email protected]/yourGithubUserName/yourRepo.git (push)

Jeśli używasz czegoś innego niż [email protected] , otwórz plik konfiguracyjny w katalogu git, wpisując polecenie:

vi .git/config

I skonfiguruj linię

[remote "origin"]

url = ssh://[email protected]/yourGithubUserName/yourRepo.git

fetch = +refs/heads/*:refs/remotes/origin/
rafaeljuzo
źródło
Dla mnie to faktycznie działało, zastępując [email protected] <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.

Dan Power
źródło
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ć:

[email protected]:<username>/<project>

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

śmiały
źródło
2
W przypadku połączenia SSH git@częścią jest magia. Tak ssh://[email protected]/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 [email protected].

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.

Artem Russakovskii
źródło
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.

paopao
źródło
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).

uczeń_19
źródło
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ć.

gkl
źródło
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
Naiguel Developer
źródło
0

Użyj ubuntu w sklepie Windows

podsystem Windows dla systemu Linux

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

MayurKubavat
źródło
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 .

Sparsh Juneja
źródło
0

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

  1. nano project_path/.git/config
  2. Zamień [email protected]:username/repository.gitnahttps://[email protected]/username/repository_name.git
  3. Zapisz plik ctrl+o

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

Maxim Niko
źródło
-1

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

brandonscript
źródło
-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.

Koszatka
źródło
-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

yjsa
źródło
-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.

erukumk
źródło
Chociaż może to być obejście, nie rozwiązuje początkowego problemu.
maffo