Szukałem w pobliżu przez wiele godzin, szukając rozwiązania mojego pozornie łatwego do rozwiązania problemu. Nie chodzi o to, że moje wyszukiwanie nic nie przyniosło, po prostu moje wyszukiwanie znalazło tak wiele różnych rozwiązań - z których żadne nie zadziałało.
W każdym razie po prostu nie mogę pchać, wyciągać ani pobierać z mojego repozytorium Heroku z mojego Maca. Każda próba daje mi (jakby mnie kpiła) następujący błąd:
„Odmowa pozwolenia (publickey). fatal: nie można odczytać ze zdalnego repozytorium. '
Próbowałem (i próbowałem ponownie) naprawić to na wiele różnych sposobów. Jak powiedziałem, spędziłem dużą część ostatnich dwóch dni szukając odpowiedzi. Oto kilka rzeczy, które wypróbowałem:
- Klawisze heroku: wyczyść, a następnie klawisze heroku: dodaj
- Samodzielne regenerowanie klucza ssh za pomocą polecenia „ssh-keygen -t rsa”
- Czyszczenie mojego katalogu .ssh, po którym następują klucze heroku: clear, a następnie generowanie klucza ssh
- Usunięcie mojej aplikacji na heroku i odtworzenie jednej (na szczęście niewiele tam było)
Mogę pobrać dane z repozytorium GitHub w porządku, więc wiem, że to nie jest łączność sieciowa (działa również pingowanie heroku).
Jako prowizoryczne rozwiązanie (które, mam nadzieję, nie zmieni się w trwałe), zalogowałem się do mojej instancji Ubuntu Amazon AWS ec2. Ciągnięcie i pchanie do iz Heroku działa doskonale. Z tego powodu nadal czuję, że problem leży po stronie klawisza ssh na moim Macu. Oba klucze pojawiają się na moim koncie Heroku. Czy adres e-mail na końcu klucza ma znaczenie?
EDYCJA: Mogę w porządku push i pull z GitHub (jednak nie używam ssh), więc dlaczego nie Heroku?
W tym momencie jestem gotów spróbować wszystkiego. Dzięki!
źródło
Odpowiedzi:
Wiem, że już na to odpowiedziano. Ale chciałbym dodać moje rozwiązanie, ponieważ może być pomocne dla innych w przyszłości.
Częstym błędem jest klucz:
Permission denied (publickey)
. Możesz to naprawić,keys:add
powiadamiając Heroku o nowym kluczu.W skrócie wykonaj następujące kroki: https://devcenter.heroku.com/articles/keys
Najpierw musisz utworzyć klucz, jeśli go nie masz:
Po drugie musisz dodać klucz do Heroku:
źródło
heroku keys:add
pomoże ci go stworzyć, jeśli nie masz klucza.ssh-keygen -t rsa
jeśliRSA
nie zostanie wygenerowany, w przeciwnym razieheroku keys:add
powinno wystarczyćPomyślałem, że podzielę się tym, że znalazłem odpowiedź na swoje pytanie.
Opisanie mojego problemu sprawiło, że stał się on dla mnie jeszcze bardziej jasny, a ja dokładniej zbadałem, gdzie moim zdaniem leży mój problem: klucz ssh
Okazuje się, że miałem rację. Problem nie dotyczył samego klucza, ale raczej to, że nie dodałem go do listy znanych kluczy SSH mojego lokalnego komputera Mac. Więc mimo że moje konto Heroku miało załadowany prawidłowy klucz, mój Mac nie mógł się uwierzytelnić, ponieważ nie mógł znaleźć tego klucza na moim komputerze. Rozwiązanie?
Chciałbym przyznać https://help.github.com/articles/error-permission-denied-publickey za dobre referencje.
źródło
Git Bash
(kliknij folder prawym przyciskiem myszy) i uruchomić,ssh-agent
co jest możliwe, uruchamiając`ssh-agent`
(pamiętaj o zaznaczeniach wstecz), a następnie dodać klucz, jak opisano powyżej. Muszę to robić za każdym razem, gdy uruchamiamGit Bash
/ssh-agent
, zapomina, co zostało dodane.Miałem dokładnie ten sam błąd (w Windows 7), a przyczyna była inna. Rozwiązałem to w inny sposób, więc pomyślałem, że dodam tutaj przyczynę i rozwiązanie dla innych.
Mimo że błąd wydawał się wskazywać na heroku, tak naprawdę ten błąd mówił
"Heroku can't get to the git repository"
. Przysięgałem, że mam te same klucze na wszystkich serwerach, ponieważ stworzyłem je i wrzuciłem do jednego po drugim w tym samym czasie.Po spędzeniu na tym prawie dnia zdałem sobie sprawę, że ponieważ git pokazuje mi tylko odcisk palca, a nie rzeczywisty klucz. Nie udało mi się zweryfikować, czy klucz pasuje do tego na moim HD lub Heroku. Zajrzałem do pliku znanych hostów i zgadłem, co ... pokazuje klucze dla każdego serwera i wyraźnie widziałem, że klucze publiczne git i heroku nie pasują.
1) Usunąłem wszystkie pliki w moim folderze kluczy, klucz z github za pomocą ich strony internetowej oraz klucz z heroku za pomocą git bash i polecenia
heroku keys:clear
2) Postępuj zgodnie z instrukcjami githuba tutaj aby wygenerować nową parę kluczy i przesłać klucz publiczny do git
3) za pomocą
git bash-
heroku keys:add
przesłania tego samego klucza do heroku.Teraz
git push heroku master
działa.co za koszmar, mam nadzieję, że to komuś pomogło.
Bryan
źródło
Problem, który miałem, polegał na tym, że używałem https tylko dla mojego konta GitHub. Musiałem się upewnić, że moje konto GitHub zostało skonfigurowane pod kątem dostępu przez ssh i że GitHub i heroku używają tych samych kluczy publicznych. Oto kroki, które podjąłem:
Przejdź do katalogu ~ / .ssh i usuń id_rsa i id_rsa.pub, jeśli tam są. Zacząłem od nowych kluczy, chociaż może to nie być konieczne.
Zaloguj się do heroku, utwórz nową witrynę i dodaj klucze publiczne:
źródło
miałem ten sam przypadek na Linuksie Ubuntu i właśnie go naprawiłem, wydaje się, że system operacyjny był pomylony między /root/.ssh/ a home / user / .ssh / dir, co zrobiłem:
heroku keys
heroku keys:clear
heroku keys:add
teraz tutaj, jeśli heroku nie mógł znaleźć klucza i poprosił o wygenerowanie go, dobrze, nie, a to oznacza, że masz ten sam problem co mój, wykonaj polecenie add w ten sposóbheroku keys:add /root/.ssh/id_rsa.pub
ścieżka, którą dodasz, będzie tą, którą masz w kroku 2.git push heroku master
terazźródło
Mój sposób na Windows 8
Dodaj katalog z ssh-keygen do systemowej zmiennej PATH, zwykle C: \ Program Files (x86) \ Git \ bin
Otwórz CMD, przejdź do C: \ Users \ Me \
Wygeneruj klucz SSH
ssh-keygen -t rsa
Wpisz plik, w którym chcesz zapisać klucz (//.ssh/id_rsa): .ssh / id_rsa (zmień domyślną niepoprawną ścieżkę na .ssh / somegoodname_rsa)
Dodaj klucz do Heroku
heroku keys:add
Wybierz utworzony klucz z listy
Przejdź do katalogu aplikacji i napisz piękny kod
Zainicjuj repozytorium git
git init
git add .
git commit -m 'chore(release): v0.0.1
Utwórz aplikację Heroku
heroku create
Wdróż swoją aplikację
git push heroku master
Otwórz swoją aplikację
heroku open
źródło
Miałem podobny problem i próbowałem wielu rzeczy. Ostatecznie pomogło mi zainstalowanie Gnu w systemie Windows ( https://github.com/bmatzelle/gow/releases ) i upewnienie się, że używa narzędzia ssh w tym katalogu, a nie tego z Git. Po zainstalowaniu przetestuj za pomocą (upewnij się, że jest w twoim środowisku PATH, że poprzedza Git \ bin)
Użyłem szpachli i korowód, jak opisano tutaj: http://rubyonrailswin.wordpress.com/2010/03/08/getting-git-to-work-on-heroku-on-windows-using-putty-plink-pageant/
Po wysłaniu kluczy do heroku (klucze heroku: dodaj c: \ Users \ Person.ssh \ id_rsa.pub) użyj
i upewnij się, że Twój stos pokazuje użycie Putty - czyli stosu roboczego:
Ten, który działał wcześniej i nie powiódł się:
źródło
musisz utworzyć nowy klucz ssh, wpisując - ssh-keygen -t rsa
Następnie musisz dodać: - klucze heroku: dodaj
Następnie, jeśli wpiszesz - heroku otwórz
Problem został rozwiązany.
I tak mi się udało, możesz spróbować ...
źródło
Otrzymałem ten sam błąd, a ponieważ mam 4 klucze SSH, więc próbowałem śledzić:
następnie cztery opcje pokazują:
Wybieram 3), najnowszą
Następnie naprawiam błąd.
źródło
Używam tej metody do rozwiązania tego problemu. Może możesz spróbować
„Włącz ssh-agent”
http://git-scm.com/
Zainstaluj to
Włącz ssh-agent
C: \ Program Files \ Git \ cmd
start-ssh-agent
Komunikat zniknie po włączeniu agenta Mam nadzieję, że to ci pomoże
źródło
Chciałbym dodać inne rozwiązanie, ponieważ nie widziałem go tutaj. Mój problem polegał na tym, że heroku łączyło się z niewłaściwym adresem URL (ponieważ ciągle bawiłem się nazwami adresów URL). Edycja zdalnego adresu URL rozwiązała mój problem:
źródło
Miałem ten sam problem. Próbowałem zresetować klucze, jak wszyscy mówili, ale nadal nie działało. To dlatego, że zmieniłem nazwę aplikacji.
Zresetowałem więc klucze, a także zmieniłem nazwę aplikacji z konsoli. Sprawdź to pytanie, aby uzyskać więcej informacji: Problem z aplikacją Heroku push
źródło
Więc takie proste rozwiązanie, przejdź do c: /Users/user_name/.ssh/ i usuń wszystkie pary kluczy pub / private, w ten sposób heroku wygeneruje klucze dla Ciebie.
źródło
Miałem podobny błąd heroku ssh, którego nie mogłem rozwiązać.
Aby obejść ten problem, użyłem nowej funkcji http-git heroku (transport http dla pilota „heroku” zamiast ssh). Szczegóły tutaj: https://devcenter.heroku.com/articles/http-git
(Wersja skrócona: jeśli masz już skonfigurowany projekt w standardowy sposób, uruchom heroku git: remote --http-init, aby zmienić „heroku” remote na http.)
Dobre szybkie obejście, jeśli nie masz czasu na naprawienie / rozwiązanie problemu z ssh.
źródło