Jestem nowy w Railsach i próbowałem wdrożyć bardzo prostą aplikację w Heroku. To druga aplikacja, którą wdrażam, i pierwszą, którą udało mi się zrobić dobrze. Jednak mam pewne problemy z tym. Za każdym razem, gdy wykonuję polecenie „ git push heroku master ”, pojawia się ten błąd:
! Twój klucz z odciskiem palca xx: xx: xx: xx: xx: xx: xx: xx: xx: xx: xx: xx: xx: xx: xx: xx nie ma uprawnień do> dostępu do my_heroku_app.
fatal: zdalny koniec niespodziewanie się rozłączył
Próbowałem zarządzać moimi kluczami po zalogowaniu się do heroku. Jeśli wpiszę w konsoli „ klucze heroku ”, otrzymam:
Brak kluczy do mojego adresu e-mail.
Jeśli jednak uruchomię komendę „ klucze heroku: dodaj ”, otrzymam
Znaleziono istniejący klucz publiczny: /Users/michele/.ssh/id_rsa.pub Przesyłanie klucza publicznego ssh /Users/michele/.ssh/id_rsa.pub! Odcisk palca już istnieje. Użyj jednego klucza ssh na konto Heroku
Proszę pomóż mi! To takie frustrujące, nie mam pojęcia, co się stało! Dziękuję Ci
heroku logout
, zalogowałem się na inne konto i usunąłem domyślny klucz RSA z tego konta. Potem mogłem naciskać tym nowo wygenerowanym kluczem.ssh-add ~/.ssh/id_rsa_heroku
chociaż mój był taki,ssh-add ~/.ssh/identity.heroku.foo
ponieważ używam również https://github.com/ddollar/heroku-accounts (menedżera wielu kont dla Heroku).Ja też mam wiele kluczy i wiele kont heroku, więc napotykam ten problem co kilka miesięcy. Jak wspomniano Giordano Scalzo, Tom Carchrae i user664833, głównym problemem jest ssh-agent, którym sterujesz za pomocą
ssh-add
polecenia. Strona podręcznika (man ssh-add
) jest właściwie dość przejrzysta i zwięzła, więc sprawdź to.Możesz wymienić wszystkie klucze, o których wie ssh-agent:
Możesz usunąć wszystkie klucze, o których wie ssh-agent:
Lub usuń określony klucz za pomocą
Nie martw się! W rzeczywistości nie usuwasz kluczy, a jedynie zmieniasz te, których ssh-agent automatycznie próbuje użyć, na przykład podczas próby wypchnięcia do heroku. W razie potrzeby łatwo jest dodawać i usuwać klucze, więc jeśli denerwuję się tym problemem, najłatwiejszym sposobem rozwiązania tego jest usunięcie wszystkich kluczy i dodanie z powrotem tylko tego, którego chcę w tej chwili użyć.
źródło
Twój komputer ma klucz SSH, ale ten klucz SSH jest powiązany z innym kontem Heroku.
Jeśli chcesz używać obu kont dla różnych aplikacji na tym samym komputerze, powinieneś utworzyć nowy klucz SSH na swoim komputerze i przesłać go do Heroku:
Pamiętaj, aby zapisać go jako „/Users/User/.ssh/new_id_rsa.pub”, gdy pojawi się monit.
Następnie trzeba dodać alternatywny Host
heroku.com
do swoich~/.ssh/config
:A następnie zaktualizuj
.git/config
w swoim projekcie, aby używał aliasu hosta:Wybierając między plikami poszczególnych projektów
heroku
iheroku-alt
zdalnie.git/config
, możesz zarządzać, które projekty używają danych uwierzytelniających.źródło
Host heroku-alt not found: 3(NXDOMAIN)
. Umieszczam to w terminalu Mountain Lion.~/.ssh/config
też nie istnieje, tylko kilka.pub
plików i jeden o nazwieknown_hosts
. A pomysły?Host
,HostName
orazIdentityFile
wiersze. Powinno wtedy działać dobrze.Oto bardzo jasne wyjaśnienie, którego brakuje w dokumentacji Heroku lub innych odpowiedziach na to pytanie. Przynajmniej wszystkie informacje nie pojawiają się w jednym miejscu. Pozwala również zrozumieć problem w sposób, którego nie robi narzędzie kont.
Heroku identyfikuje Cię na 2 sposoby:
Pierwszy znajduje się w .git / config
Wydaje się, że pozwala to na wykonywanie podstawowych operacji przy użyciu
heroku
Drugim sposobem, w jaki heroku identyfikuje Cię, jest dowolna operacja wykorzystująca ssh (git push). Heroku zidentyfikuje Cię za pomocą klucza SSH, jak podano tutaj: https://devcenter.heroku.com/articles/keys
Dlatego każde konto heroku, na którym pracujesz, będzie musiało wysłać inny klucz do heroku podczas korzystania z ssh. Postępuj zgodnie z dowolnym samouczkiem, aby utworzyć klucze ssh.
Kluczem jest uzyskanie przez SSH różnych kluczy dla każdego konta Heroku. Jak to konfigurujesz? Musisz zrobić 2 rzeczy:
1) Musisz utworzyć „fikcyjną” domenę, którą Twój plik .ssh / config przechwyci i ponownie skonfiguruje. To powie ssh "rzeczywistą" domenę, którą chcesz i jakiego specjalnego klucza ssh użyć.
2) Zmień plik .git / config, aby używał tego podczas używania git push. Zamiast heroku.com użyj fikcyjnej domeny, którą ustawiłeś w swoim .ssh / config
To wszystko :) Trochę skomplikowane i jednocześnie trochę proste. Odkrycie tych informacji zajęło mi 3 lata walenia głową w ścianę i prób i błędów. Powinien być gdzieś jasno udokumentowany, ale przynajmniej to początek.
źródło
będziesz musiał utworzyć nowe klucze i je dodać
określ nową nazwę pliku po uruchomieniu
wtedy (w moim przypadku)
źródło
Mam ten sam problem w zeszłym tygodniu. Ten link pomógł mi. Mam nadzieję, że ci to trochę pomoże. http://devcenter.heroku.com/articles/keys
źródło
W moim przypadku
heroku keys
miał już wymieniony prawidłowy klucz. Więc wszystko, co musiałem zrobić, to uruchomić,ssh-add /path/to/that/key
a potem wszystko zaczęło działać dobrze.źródło
Mam również dwa konta Heorku i jako obejście „zaprosiłem” moje główne konto (to, którego klucz jest automatycznie używany przez Heroku) jako współpracownika do mojego projektu.
źródło
Po prostu nie ma potrzeby dodawania rozwiązania dla użytkowników systemu Windows.
Pierwsze pobranie „Putty Key generator”
Utwórz klucz za jego pomocą OBS, który musisz przesunąć myszką nad puste miejsce, aby wygenerować losowość.
Zapisz klucze, po prostu pamiętaj, aby zmienić nazwę klucza na [nazwa] .pub
Uruchom
heroku keys:add
w terminalu!źródło
W moim przypadku problemem była używana przeze mnie wersja ssh. Po prostu ustawiłem zmienną środowiskową GIT_SSH na inną („GIT_SSH = / usr / bin / ssh”) i wszystko działało dobrze.
źródło