Odmowa dostępu (publickey) podczas wdrażania kodu heroku. fatal: Odległy koniec nieoczekiwanie rozłączył się


849

Próbuję wdrożyć mój kod do heroku za pomocą następującego wiersza polecenia:

git push heroku master

ale pojawia się następujący błąd:

Permission denied (publickey).
fatal: The remote end hung up unexpectedly

Przesłałem już mój publiczny klucz SSH, ale nadal pojawia się ten błąd.


czy rozwiązanie sebarmeli działało dla Ciebie? Nie używam klucza rsa o nazwie „id_rsa.pub” i po prostu wprowadziłem „klucze heroku: add ~ / .ssh / <rsa_key_filename> .pub”
Michael Merchant,

6
Miałem ten problem prawie rok temu i wówczas zaproponowane rozwiązanie nie do końca działało, ale jakoś to wymyśliłem (w tym momencie nie pamiętam, co dokładnie zrobiłem). Sebarmeli odpowiedział chwilę po tym, jak nie potrzebowałem już pomocy, choć wydaje się, że jego odpowiedź jest dość popularna wśród osób, które doświadczyły podobnego problemu. Jeśli ludzie będą szczęśliwi, wybiorę jego odpowiedź jako poprawną.
co

3
Poniższy wiersz rozwiązał dla mnie problem. konta heroku: ustaw swoje konto
Mingming

Wygląda na to, że niektóre usługi heroku są dzisiaj niedostępne - koniecznie sprawdź ich witrynę pod kątem problemów, jeśli to debugujesz!
Philip Guin

Miałem ten sam problem, wystarczyło heroku loginnapisać adres e-mail i hasło i spróbować ponownie.
Alejandro Veintimilla

Odpowiedzi:


1474

Musisz wgrać swój klucz publiczny do Heroku:

heroku keys:add ~/.ssh/id_rsa.pub

Jeśli nie masz klucza publicznego, Heroku poprosi Cię o dodanie go automatycznie, który działa bezproblemowo. Po prostu użyj:

heroku keys:add

Aby wyczyścić wszystkie poprzednie klucze:

heroku keys:clear

Aby wyświetlić wszystkie istniejące klucze:

heroku keys

EDYTOWAĆ:

Wydawało mi się, że powyższe nie działa. Pomieszałem ze HOMEzmienną środowiskową, więc SSH szukało kluczy w niewłaściwym katalogu.

Aby upewnić się, że SSH sprawdza klucz w poprawnym katalogu:

ssh -vT git@heroku.com

Które wyświetlą następujące (przykładowe) linie

OpenSSH_4.6p1, OpenSSL 0.9.8e 23 Feb 2007
debug1: Connecting to heroku.com [50.19.85.156] port 22.
debug1: Connection established.
debug1: identity file /c/Wrong/Directory/.ssh/identity type -1
debug1: identity file /c/Wrong/Directory/.ssh/id_rsa type -1
debug1: identity file /c/Wrong/Directory/.ssh/id_dsa type -1
debug1: Remote protocol version 2.0, remote software version Twisted
debug1: no match: Twisted
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_4.6
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-cbc hmac-md5 none
debug1: kex: client->server aes128-cbc hmac-md5 none
debug1: sending SSH2_MSG_KEXDH_INIT
debug1: expecting SSH2_MSG_KEXDH_REPLY
debug1: Host 'heroku.com' is known and matches the RSA host key.
debug1: Found key in /c/Wrong/Directory/.ssh/known_hosts:1
debug1: ssh_rsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Trying private key: /c/Wrong/Directory/.ssh/identity
debug1: Trying private key: /c/Wrong/Directory/.ssh/id_rsa
debug1: Trying private key: /c/Wrong/Directory/.ssh/id_dsa
debug1: No more authentication methods to try.

Permission denied (publickey).

Z powyższego można zauważyć, że ssh szuka kluczy w /c/Wrong/Directory/.sshkatalogu, w którym nie ma kluczy publicznych, które właśnie dodaliśmy do heroku (za pomocą heroku keys:add ~/.ssh/id_rsa.pub) ( Należy pamiętać, że w systemie operacyjnym Windows ~odnosi się do HOMEścieżki, która w winC:\Users\UserName 7/8 jest )

Aby wyświetlić bieżący katalog domowy, wykonaj: echo $HOMElub echo %HOME%(Windows)

Aby ustawić HOMEpoprawnie katalog (poprawnie rozumiem katalog nadrzędny katalogu .ssh, aby ssh mógł szukać kluczy w odpowiednim katalogu), skorzystaj z poniższych linków:

  1. SO Odpowiedz na to, jak na stałe ustawić zmienną środowiskową Unix

  2. SO Pytanie dotyczące ssh szukającego kluczy w niewłaściwym katalogu i rozwiązania tego samego.


31
Nie działało dla mnie. Musiałem odwołać mój stary klucz, a następnie pozwolić, aby aplikacja heroku wygenerowała i przesłała nowy dla mnie. Zobacz link, jak to zrobić, dostarczony przez Lithium.
borisdiakur

9
tylko notatkę dla ludzi mówiących, że to nie działa. musisz upewnić się, że masz już utworzony klucz publiczny ssh. help.github.com/mac-set-up-git, aby uzyskać więcej informacji na ten temat w systemie Mac.
Ryan

92
jeśli nie masz klucza publicznego, heroku poprosi cię o dodanie go automatycznie, który działa bezproblemowo. Wystarczy użyć:heroku keys:add
vansan

13
Spróbuj także, ssh-keygen -t rsa -C "your_email@youremail.com"jeśli nadal występuje błąd, utworzyć kolejny plik.pub i użyć tego w poleconym poleceniu w tej odpowiedzi
Tom Roggero

3
Być może będziesz musiał utworzyć / odtworzyć klucz przed dodaniem do heroku. whatibroke.com/?p=284 pracował dla mnie dla Windows 7.
Khalid Saifullah

146

Miałem ten sam problem, poniższe kroki działały dla mnie,

->heroku login

abc@gmail.com i hasło

->cd C:\Users\yourusername\.ssh    (OR for cygwin shell ->cd ~/.ssh)

->ssh-keygen -t rsa -f id_rsa

jeśli poprosisz o jakiekolwiek hasło, nie używaj pustego pola, wypełnij je, ale nie zapomnij.

Po wygenerowaniu klucza musisz go dodać

$ ssh-add

i to do heroku

->heroku keys:add "id_rsa.pub"

zmień katalog na obszar roboczy, niż

->git clone git@heroku.com:stark-dawn-1234.git -o heroku

użyj hasła, które ustawiłeś powyżej.


Właściwie usuwam również poniższe pliki, ale nie jestem pewien, czy są imp,

C: \ Users \ twoja nazwa użytkownika. Heroku \ credientals i C: \ Users \ twoja nazwa użytkownika.ssh \ znane_hosty


21
To rozwiązało dla mnie. Myślę, że powodem było to, że miałem plik „github_rsa” z Github for Windows, ale brak pliku id_rsa.
msiemens

Nie działał z instalatorem openssl. Musiałem zainstalować CopSSH, aby uzyskać program ssh-keygen.exe.
djangofan

W systemie Windows 7 musiałem to zrobić w git bashwierszu polecenia, aby uruchomić ssh-keygen. dzięki.
Rots

To działało dla mnie i wydaje się być najlepszym rozwiązaniem. Lepsze pytanie brzmi: dlaczego muszę to powtarzać co drugi dzień
Paul Renton,

3
To zadziałało dla mnie. Jeśli używasz Git Bash w systemie Windows, klucz MUSI mieć nazwę id_rsa.pub, w przeciwnym razie nie zadziała, nawet jeśli prześlesz coś innego do Heroku.
Kiv

90

Ten problem bałaganił mnie przez kilka dni.

To może pomóc.

1) Dowiedz się, jakie masz klucze w Heroku.

$ heroku keys
=== 1 key for joe@example.com
ssh-dss AAAAB8NzaC...DVj3R4Ww== joe@workstation.local

2) Zbuduj plik ~ / .ssh / config:

$ sudo vim ~/.ssh/config

Edytuj za pomocą tych informacji

Host heroku.com
Hostname heroku.com 
Port 22 
IdentitiesOnly yes 
IdentityFile ~/.ssh/ssh-dss # location and name of your private key
TCPKeepAlive yes 
User joe@workstation.local

3
To działało również dla mnie, po tym, jak nic innego nie działało! Jednak przed Usertą ostatnią linią powinien wystąpić podział linii. Poza tym narzekał na #komentarz, więc właśnie go usunąłem.
Erik J,

2
Upewnij się, że plik „IdentityFile” ma niepubliczny plik (jak wyżej), a nie publiczny. Z jakiegoś powodu mój miał wersję publiczną i zgłaszał błąd, mówiąc, że uprawnienia do pliku są nieprawidłowe.
Kevin K

Dodanie tych hostinformacji do mojego pliku konfiguracyjnego rozwiązało problem. Utworzyłem klucz heroku rsa, a domyślne uprawnienia na heroku.pub zgłosiły błąd, gdy próbowałem git push. Musiałem chmod 600 heroku.pubi wtedy, kiedy go popchnąłem, zadziałało.
Dylan Valade,

1
IdentityFile ~/.ssh/ssh-dssjest ścieżką do klucza prywatnego . Chcesz wprowadzić tutaj swój klucz prywatny , a nie klucz publiczny .
HairOfTheDog

1
Ta odpowiedź mnie przewyższyła. Korzystam z systemu Windows 7 64-bitowego. Istnieje wiele innych kroków, które pomogły, takie jak: ssh-keygen -t rsa -f id_rsa, a następnie usunięcie wszelkich kluczy heroku i dodanie właśnie utworzonego klucza: klucze heroku: wyczyść klucze heroku: dodaj C: \ Users \ nazwa użytkownika \ .ssh \ id_rsa.pub, a następnie nieznacznie modyfikując powyższy plik do IdentityFile C: /Users/windows_username/.ssh/id_rsa
Paul


35

Miałem ten sam problem, ponieważ nie miałem kluczy publicznych, więc:

heroku keys:clear
heroku keys:add

To wygeneruje klucz publiczny, a następnie będzie działał dobrze


1
Nadal pojawia się błąd. próbuję różnych rzeczy, rozwiązuję to, a potem mam ten sam problem w następnym tygodniu ... Zastanawiam się, dlaczego Heroku jest taki.
JGallardo,

31

Jeśli jesteś użytkownikiem systemu Windows, inne rozwiązania prawdopodobnie nie rozwiążą twojego problemu.

Używam Windows 7 64-Bit + Git-1.7.7.1-Preview20111027, a rozwiązaniem było skopiowanie moich kluczy z C:\users\user\.sshdo C:\Program Files (x86)\Git\.ssh. Właśnie tam ten klient git szuka kluczy podczas wypychania do heroku.

Mam nadzieję, że to pomoże.


2
Dla mnie było to c: \ msysgit \ .ssh. Właśnie utworzyłem połączenie katalogu z folderem .ssh w moim folderze osobistym.
Colin Bowern

Ten sam problem tutaj, ale dlaczego nie wiem. Za każdym razem, gdy dodawałem klucze, wyświetlał się komunikat, który używał kluczy z mojego folderu użytkownika, to samo z tą poprawką, ale działało.
Haris Krajina,

12
NIE Rób tego! Działa to, ponieważ HOME jest pusty i domyślnie jest to bieżący plik exe. Jeśli komuś uda się zalogować jako Gość, może uzyskać Twój klucz prywatny. Ustaw HOME w Zaawansowanych ustawieniach użytkownika na% HOME_DRIVE %% HOMEPATH% (lub C: \ Users \ <nazwa użytkownika> na Win7) i skopiuj tam plik .ssh.
dmajkic

Oprócz @dmajkic, na Win7 zobacz ten poradnik Git dla Windows, aby ustawić %HOME%zmienną środowiskową na %USERPROFILE%.
Steve Eynon

29

To było dla mnie rozwiązanie:

ssh-add ~/.ssh/my_heroku_key_rsa

1
To samo tutaj. Dziękuję Ci. Upewnij się także, że Twój klucz prywatny ma odpowiednie uprawnienia. chmod 600 ~/.ssh/heroku_rsa
Arnaud Brousseau,

dziękuję - to też był mój problem i najpierw musiałem pójść za wskazówkami Arnauda.
Mike Atlas

15

Aby podzielić się moim doświadczeniem:

Git (moja własna instalacja) szukał klucza o nazwie „id_rsa”.

Próbowałem więc zmienić nazwę moich kluczy na „id_rsa” i „id_rsa.pub” i zadziałało.

Przy okazji, jestem pewien, że jest na to inny sposób, ale nie zaglądałem jeszcze głębiej.


3
Pracował dla mnie (Windows 7 64bit). Mam zainstalowany GitHub dla Windows i nazywa klucze GitHub_rsa. Czy istnieje sposób na określenie, którego klucza powinien używać Git?
Spongeboy

11

Jeśli klucz został już przesłany, spróbuj go usunąć, a następnie prześlij ponownie z nowym kluczem.

 heroku keys:remove //removes the existing key
 ssh-keygen -t rsa //generates a new key in ~/.ssh folder
 heroku keys:add    //uploads the new key, if no arguments r passed then the key generated                              
                    //in default directroy i.e., ~/.ssh/id_rsa is uploaded
 git push heroku

to powinno działać.


Dzięki, to zadziałało dla mnie. Chociaż użyłem kluczy heroku: wyczyść zamiast kluczy heroku: usuń.
Peter de Ridder

1
Źle,Must specify KEY to remove
JGallardo,

7

Zabiłem się przez 3 dni, próbując każdej możliwej kombinacji, aby spróbować to uruchomić - w końcu spróbowałem zrobić klucz DSA i zadziałało.

Wypróbuj DSA zamiast RSA, jeśli to nie działa.

(Używam Ubuntu 11.10, ruby ​​1.8.7, heroku 2.15.1)


1
Rozmawiałem ze wsparciem Heroku, a oni zasugerowali to jako tymczasowe rozwiązanie. To działało dla mnie, ale jestem pewien, że nie jest to odpowiedź na każdy przypadek.
Sos McBoss,

3
Nie jestem pewien, dlaczego ta odpowiedź zasługiwała na głosowanie w dół ... Rozwiązało to dla mnie problem i sugeruje odpowiedź na problem.
Sos McBoss

Miałem odwrotny problem ... chociaż dokumentacja twórców Heroku mówi, że możesz używać klucza DSA (ssh-dss), ciągle otrzymywałem komunikat „Odmowa zezwolenia”, dopóki nie przełączyłem się na klucz RSA
brandonjp

pracował dla mnie. Przełączanie między dsa i rsa wydaje się działać, jeśli zmienisz klucze po utworzeniu heroku i przed uruchomieniem git push.
Pramod

i jak mogę utworzyć klucz DSA i dodać go do heroku?
coiso

6

W systemie Windows 7,64 bit powyższe rozwiązanie (Onur Turhan's) działało dla mnie z niewielkimi zmianami, jak poniżej

C:\Users\MyName > heroku login

Wpisz adres e-mail / hasło

C:\Users\MyName >ssh-keygen -t rsa -f id_rsa

To wygenerowało dwa pliki (id_rsa i id_rsa.pub) w moim katalogu c: \ Users \ MyName (nie w katalogu .ssh)

heroku keys:add id_rsa.pub
git clone git@heroku.com:some-heiku-xxxx.git -o heroku

Wydaje mi się, że dodanie poprawnego pliku „id_rsa.pub” jest najważniejsze. Po wygenerowaniu klucza publicznego za pomocą keygen po prostu sprawdź, czy dodajesz poprawny klucz, patrząc na znacznik czasu, w którym został utworzony.


5

Działa jedno polecenie:

heroku keys:add

Stworzy taki, jeśli nie będzie istniał.


Głosuj, to nie odpowiada w kontekście błędu. Usunąłem istniejące, utworzyłem nowe, dodałem klucze i nadal mam problem. twoja sugestia heroku keys:addnie jest kompletną odpowiedzią.
JGallardo,

5

Miałem ten problem, gdy TortoiseGIT został zainstalowany na moim komputerze. Po zmianie zmiennej środowiskowej GIT_SSHz

"c:\Program Files\TortoiseGit\bin\TortoisePlink.exe"

do

"c:\Program Files (x86)\Git\bin\ssh.exe"

i postępując zgodnie z tym samouczkiem za pomocą ssh-keygeni keys:add, działa!


z którego tutoriala korzystałeś?
eckes

ten tutaj z Onur Turhan
zooli

Korzystanie z ssh dostarczonego przez Git IS jest bardzo dobrym rozwiązaniem. Naprawdę komplikowało się zrozumienie plink / pageant / putty tutaj ...
Stéphane

4

Pchanie działało na mnie, a potem nagle się zatrzymało.

Jeśli interfejs heroku API przestaje działać, pojawi się ten błąd przy próbie wypchnięcia.

Czek:

https://status.heroku.com/

zanim wkurzysz się zbyt mocno.


3

Sekwencja do naśladowania

$ heroku login
$ ssh-keygen -t rsa
$ heroku keys:add

Podczas wykonywania drugiej instrukcji poprosi o wprowadzenie danych, wystarczy trzykrotnie nacisnąć Enter (return), a klucz zostanie dodany.


wiele osób miało dokładnie tę samą odpowiedź. i nie działa, jak stwierdzono.
JGallardo,

2

Powyższa odpowiedź DZIAŁA, ale okazało się, że muszę zrobić kilka dodatkowych kroków, zanim zadziała.

  1. Usunąłem wszystkie pliki id_rsa * i wygenerowałem nowy SSH, korzystając z tego przewodnika.
  2. Następnie zniszczyłem aplikację heroku. Usunięto plik ~ / .heroku / credentials.
  3. polecenie „heroku create” (a ponieważ plik poświadczeń został usunięty, wyświetli się monit o podanie adresu e-mail / hasła.
  4. WRESZCIE wpisz „heroku keys: add”, a prześle domyślny plik ~ / .ssh / id_rsa.pub.
  5. To działa! Cóż ... YMMV, ale naprawdę mam nadzieję, że to może być pomoc, ponieważ walczyłem cały dzień, próbując to rozgryźć! Ha ha

2

Dla wszystkich tych, którzy próbowali wszystkiego, co wspomniano powyżej w systemie Windows 7 i nadal nie działało, oto co zrobiłem: - otwórz GitBash.exe z katalogu Git C: \ Program Files (x86) \ Git \ (don ' t otworzyć wiersz polecenia, to nie zadziała). - dodaj poniższe, jak wspomniano powyżej , ale musisz usunąć #

Host heroku.com
Hostname heroku.com 
Port 22 
IdentitiesOnly yes 
IdentityFile ~/.ssh/ssh-dss
TCPKeepAlive yes 
User joe@workstation.local

teraz uruchom git push heroku master i powinno działać.


Poprawienie tego również. Spędziłem 6 godzin z wczoraj i nie wydaje mi się, że to wiedza, na której mi zależy. Mogę pchać do github poprzez PowerShell i wiersz poleceń, ale tylko Git Bash działa dla mnie dla heroku. Teraz działa za każdym razem. Kończę też logowanie do heroku, zanim git push heroku master. Może nie być to konieczne, ale na razie zabobon sprawia, że ​​to robię. Jaki koszmar
JMDenver

1

Wygląda na to, że ~/.ssh/authorized_keysplik nie jest poprawnie skonfigurowany. Zweryfikuj to:

  • Jest na właściwej ścieżce.
  • Uprawnienia do pliku to 0600.
  • Uprawnienia ~/.sshwynoszą 0700.

Jestem dość nowy w tych sprawach, więc przepraszam, jeśli to zabrzmi głupio, ale mój publiczny plik kluczy SSH to tylko kilka znaków (standardowy gen klucza) bez żadnych innych informacji. Ten plik SSH uzyskałem podczas instalacji git na moim komputerze. Zakładałem, że będzie to ten sam publiczny klucz SSH, którego użyłbym do wdrożenia mojego kodu heroku. Czy może heroku ma własny publiczny klucz SSH, który muszę wygenerować?
vich

1
Tak, możesz ponownie użyć swojego publicznego klucza SSH dla wielu różnych hostów. Nie jestem pewien, jak dokładnie działa Heroku, ale widzę, że moja odpowiedź tak naprawdę nie ma zastosowania w tym przypadku. Możesz sprawdzić, czy Twój klucz został zaakceptowany przez ich interfejs sieciowy. Jeśli wszystko nadal się sprawdza, spróbuj skontaktować się z zespołem pomocy technicznej.
cdhowie

Dzięki za radę! Skontaktowałem się z pomocą techniczną Heroku. Zaktualizuję, gdy tylko otrzymam odpowiedź.
vich

Ok. Chciałbym usłyszeć, na czym polega problem. :)
cdhowie

1
Problem polegał na nazwaniu publicznego pliku kluczy SSH. Kiedy pierwotnie utworzyłem plik, zmieniłem również jego nazwę, co spowodowało problemy z wdrażaniem, ponieważ git nie łączy się poprawnie, a tym samym powoduje, że wdrożenie heroku również nie powiodło się. Aby rozwiązać problem, wygenerowałem nowy publiczny klucz SSH i dodałem go do github przed ponowną próbą. Teraz się łączy! Dzięki za pomoc!
vich

1

Musiałem zrobić:

$ ssh-keygen -t rsa  
$ heroku keys:add  

Potem zadziałało:

$ git push heroku master  

1

Sprawdź konfigurację .ssh dla heroku. Przejdź do folderu .ssh i otwórz plik konfiguracyjny

cd ~/.ssh
subl config

„Subl” dotyczy Sublime Text, ale możesz użyć dowolnego edytora. Wyszukaj wiersz „IdentityFile” i upewnij się, że ma na liście klucz niepubliczny:

IdentityFile "/Users/ircmullaney/.ssh/my_ssh"

nie

IdentityFile "/Users/ircmullaney/.ssh/my_ssh.pub"

To mi zrobiło. Nie jestem pewien, dlaczego moja miała publiczną wersję w pliku konfiguracyjnym, ale tak się stało i zgłaszał błąd:

Permissions 0644 for '/Users/ircmullaney/.ssh/my_ssh.pub' are too open.

1

Po wypróbowaniu wszystkich tych pomysłów wciąż miałem problemy. To był mój problem:

Moje zdalne repozytorium heroku było funkcjonalne. Odświeżiłem go w następujący sposób:

git remote -v

Następnie usuń niepoprawny heroku:

git remote rm heroku

Następnie dodaj nowy

git remote add heroku git@heroku.com:sitename.git

Możesz uzyskać nazwę witryny ze strony ustawień Heroku dla swojej aplikacji. Powodzenia!


1

Problem, z którym się spotkałem, dotyczył systemu Windows i niezmiennie za każdym razem, gdy uruchamiam „klucze heroku: dodaj”, wybieram klucze github. Oto kroki, które wykonałem, aby rozwiązać problem

  1. poszedł do katalogu .ssh w folderze „Document and Settings” i usunął klucze git hub
  2. uruchom polecenie heroku keys: add

Powyższe polecenie poprosiło mnie o wygenerowanie nowych kluczy, a następującą odpowiedzią było wyjście Nie można znaleźć istniejącego klucza publicznego. Czy chcesz go wygenerować? [Yn] Y Generowanie nowego klucza publicznego SSH. Przesyłanie klucza publicznego SSH C: / Documents and Settings / Admin / .ssh / id_rsa.pub ... gotowe! Klejnot „heroku” został wycofany i zastąpiony paskiem narzędziowym Heroku, pobierz i zainstaluj z https://toolbelt.heroku.com .

  1. uruchom ponownie polecenie heroku keys: add

Powyższe polecenie nie wyświetli następującego wyniku: Znaleziono istniejący klucz publiczny: C: / Documents and Settings / Admin / .ssh / id_rsa.pub Przesyłanie klucza publicznego SSH C: / Documents and Settings / Admin / .ssh / id_rsa.pub .. . gotowy

  1. Teraz użyj mistrza git push heroku

dla mnie przy użyciu powyższych kroków rozwiązałem problem i udało mi się wdrożyć aplikację w chmurze.


1

Miałem ten sam problem; następujące kroki powinny pomóc:

  1. Najpierw zaloguj się: login heroku
  2. Wyczyść wszystkie klucze: klucze heroku: wyczyść
  3. Usuń wszystkie pliki w folderze lokalnym (wszystkie .pubpliki i know_host) w.ssh/ folder
  4. Zaloguj się ponownie: logowanie do heroku - wyświetli się monit bez klucza, więc postępuj zgodnie z instrukcjami wyświetlanymi na ekranie.

Nie działa w celu rozwiązania problemu. Jestem zalogowany, pomyślnie dodałem klucze i nadal otrzymujęPermission denied (publickey).
JGallardo

Dlaczego musimy usunąć wszystkie pliki z folderu .ssh?
Starx

0

Chciałbym tylko dodać, że katalog niekoniecznie musi być C: \ Users \ [nazwa użytkownika] \. Ssh. Jest to katalog, w którym utworzono klucz publiczny.

Na przykład mój katalog domowy w systemie Windows został zmieniony na C: \ [nazwa użytkownika]. Twój katalog domowy w podfolderze .ssh jest najlepszym i najprawdopodobniej miejscem, w którym możesz utworzyć klucze. Możesz sprawdzić swój katalog domowy w systemie Windows za pomocą polecenia:

    echo %HOMEPATH%

0

Jeśli chcesz użyć „sudo”, przykład:

sudo git clone git@heroku.com......... -o heroku

powinieneś również wygenerować klucz ssh dla użytkownika root.

sudo su
cd /root/.ssh  
ssh-keygen -t rsa
....
heroku keys:add id_rsa.pub

i zadziała.

jeśli nie używasz użytkownika root, wygeneruj klucz ssh w swoim katalogu użytkownika.

cd /home/user/.ssh

Przepraszam, jeśli moje zdania zawiodły ...


0

Spróbuj naprawić uprawnienia w Narzędziu dyskowym (Mac OS X). Pomogło mi


0

Najpierw upewnij się, że ukryte pliki są widoczne na komputerze Mac. Jeśli nie:

  • Otwórz terminal i wpisz defaults write com.apple.Finder AppleShowAllFiles TRUE
  • killall Finder

Następne kroki:

  • Idę Users/user_name/.ssh/usunąć wszystkie pliki.
  • Otwieranie typu terminala w ssh-keygen -t dsa
  • Następnie heroku keys:add ~/.ssh/id_dsa.pub

NB Zrobiłem to w systemie Mac OSX 10.7.2 Lion. Chociaż procedura powinna być taka sama w innych.


0

Mam również ten problem. Używam Mac OSX. Naprawiłem sposób, w jaki logowałem się jako administrator

sudo su

hasło


0

Rozwiązanie dmajkic w końcu mi pomoże:

Dla użytkowników systemu Windows może to oznaczać: klient git nie może znaleźć twoich kluczy. Sprawdź klucze c: \ Users \ UserName.ssh \ i! zmienna środowiskowa HOME = c: \ Users \ UserName \


0

Oto, co zadziałało dla mnie. Witryna heroku nie jest dodawana do znanych hostów. Przejdź do okna-inne-pokaż repozytoria view-git-git. Stamtąd sklonuj repozytorium. Po sklonowaniu usuń właśnie utworzone repozytorium, a następnie zaimportuj je z menu plików. Zrób to, ponieważ po sklonowaniu repozytorium nie dodaje go ono do widoku eksploratora. Teraz powinieneś mieć repozytorium git i widok eksploratora.

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.