Chcę użyć mojej instancji Amazon ec2, ale napotkałem następujący błąd:
Permission denied (publickey).
Utworzyłem moją parę kluczy i pobrałem plik .pem .
Dany:
chmod 600 pem file.
Następnie to polecenie
ssh -i /home/kashif/serverkey.pem [email protected]
Ale ten błąd:
Permission denied (publickey)
Również, w jaki sposób można połączyć z FileZilla, aby przesłać pliki / download?
amazon-web-services
ssh
amazon-ec2
Kashiftufail
źródło
źródło
admin
. Przynajmniej dla wersji 6.5 i 7.0.ec2-user
, upewnij się, że nie używaszec2_user
:)$HOME/.ssh/authorized_keys
pliku.Odpowiedzi:
Ten komunikat o błędzie oznacza, że nie udało się uwierzytelnić.
Są to typowe przyczyny, które mogą powodować:
ubuntu
to nazwa użytkownika dla dystrybucji Ubuntu opartej AWS, ale na niektórych innych jest toec2-user
(lubadmin
w niektórych Debians, zgodnie z odpowiedzią Bogdan Kulbida za) (może być równieżroot
,fedora
patrz poniżej)Zauważ, że
1.
stanie się to również, jeśli popsułeś/home/<username>/.ssh/authorized_keys
plik w instancji EC2.Informacje o
2.
nazwie użytkownika, której należy użyć, często brakuje w opisie obrazu AMI. Ale niektóre można znaleźć w dokumentacji AWS EC2, punktor4.
: http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstancesLinux.htmlNa koniec pamiętaj, że istnieje wiele innych powodów niepowodzenia uwierzytelnienia. SSH jest zwykle bardzo wyraźne, co poszło nie tak, jeśli chcesz dodać
-v
opcję do polecenia SSH i przeczytać wynik, jak wyjaśniono w wielu innych odpowiedziach na to pytanie.źródło
W takim przypadku problem wynika z utraconej pary kluczy. O tym:
Możesz wykonać następujące kroki:
Ogólnie pamiętaj, że musisz zezwolić instancji EC2 na akceptację przychodzącego ruchu SSH.
Aby to zrobić, musisz utworzyć specjalną regułę dla grupy bezpieczeństwa swojej instancji EC2. Możesz wykonać następujące kroki.
Mam nadzieję, że to może komuś pomóc, ponieważ pomogło mi.
źródło
W ten sposób rozwiązałem problem
źródło
Rozwiązałem problem
sudo
przed chwiląAle właściwym rozwiązaniem jest najpierw zmiana właściciela, a następnie połączenie jak zwykły użytkownik, jak powiedział Janus Troelsen. W moim przypadku byłoby to:
źródło
sudo chown wellington:wellington key.pem
.Spróbuj użyć
LUB
źródło
Inna możliwa przyczyna tego błędu:
Gdy katalog domowy użytkownika można zapisać w grupie , użytkownik nie może się zalogować.
(Reprodukcja na instancji Ubuntu.)
źródło
w przypadku mikro instancji ubuntu 12.04 lts musiałem ustawić nazwę użytkownika jako opcję
źródło
Musisz wykonać następujące kroki:
cd <path to your .pem file>
chmod 400 <filename>.pem
ssh -i <filename>.pem ubuntu@<ipaddress.com>
Jeśli
ubuntu
użytkownik nie działa, spróbuj zec2-user
.źródło
Walczyłem z tym samym pozwoleniem, któremu odmówiono błędu, prawdopodobnie z powodu
W mojej sytuacji przyczyną był plik konfiguracyjny ssh bieżącego użytkownika (~ / .ssh / config).
Wykorzystując następujące:
Wyjściowe wyjście pokazało:
... wycięto tutaj wiele linii debugowania ...
Trzecia linia powyżej to miejsce, w którym zidentyfikowano problem; Jednak szukałem komunikatu debugowania cztery linie od dołu (powyżej) i zostałem wprowadzony w błąd. Z kluczem nie ma problemu, ale przetestowałem go i porównałem inne konfiguracje.
Mój plik konfiguracyjny ssh użytkownika zresetował host za pomocą niezamierzonego ustawienia globalnego, jak pokazano poniżej. Pierwsza linia hosta nie powinna być komentarzem.
Mam nadzieję, że ktoś inny uzna to za pomocne.
źródło
Zapomniałem dodać nazwy użytkownika (ubuntu) podczas łączenia mojej instancji Ubuntu. Więc próbowałem tego:
i był to właściwy sposób
źródło
Zdarzyło mi się to wiele razy. Korzystałem z Amazon Linux AMI 2013.09.2 i Ubuntu Server 12.04.3 LTS, które są na wolnej warstwie.
Za każdym razem, gdy uruchamiam instancję, nie mam uprawnień, aby się pojawiać. Nie zweryfikowałem tego, ale moja teoria jest taka, że serwer nie jest całkowicie skonfigurowany, zanim spróbuję na nim ssh. Po kilku próbach z odmową dostępu czekam kilka minut, a potem mogę się połączyć. Jeśli masz ten problem, sugeruję odczekać pięć minut i spróbować ponownie.
źródło
Oto możliwe frustrujące scenariusze, które powodują ten błąd:
Jeśli spożywasz nową instancję z utworzonego przez siebie AMI innej instancji (np. Instancja xyz), nowa instancja zaakceptuje tylko ten sam klucz, którego użyła instancja A. Jest to całkowicie zrozumiałe, ale staje się mylące, ponieważ podczas procesu tworzenia nowej instancji krok po kroku użytkownik jest proszony o wybranie lub utworzenie klucza (na ostatnim etapie), który nie będzie działał.
Niezależnie od klucza, który utworzysz lub wybierzesz, tylko nowy klucz użyty na przykład XYZ zostanie zaakceptowany przez nową instancję.
źródło
Zmagałem się z tym również przez chwilę, aż znalazłem:
Gdy użyjesz tego z katalogu projektu, bingo-bango nie będzie musiało być bezproblemowe
źródło
W moim przypadku wykonałem następujące czynności:
Początkowo używałem
root@
części i otrzymałem następujący monit:źródło
Jestem w systemie Windows z WinSCP . Działa świetnie zarówno w Eksploratorze plików, jak i PuTTY SSH Shell, aby uzyskać dostęp do mojego Amazon EC2-VPC Linux. Nie ma nic wspólnego z
chmod pem file
jak używa gomyfile.ppk
przekształcone przez PuTTYgen z pliku pem .źródło
to samo mi się przydarzyło, ale wszystko, co się działo, to zgubienie klucza prywatnego z pęku kluczy na mojej lokalnej maszynie.
ponownie dodał klucz, a następnie polecenie ssh, aby się połączyć, powróciło do pracy.
źródło
Ten problem można rozwiązać, logując się w polu Ubuntu za pomocą poniższego polecenia:
źródło
Dwukrotnie miałem poprawne klucze i wiersz poleceń ssh (wiem, ponieważ duplikuję działającą instancję Ubuntu 14.04), ale po prostu nie byłem w stanie ssh w nowej instancji, nawet po odczekaniu 5 minut, jak sugerował Wade Anderson powyżej.
Musiałem zniszczyć i odtworzyć maszynę. Stało się to dwa razy. Ponieważ początkowo nie mogę się dostać, nie widzę, co jest nie tak.
Więc jeśli masz ten problem, spróbuj tego.
źródło
musisz sprawdzić te kilka rzeczy:
Miałem ten sam problem i rozwiązałem go po zmianie nazwy użytkownika na ubuntu. W dokumentacji AWS wspomniano o użytkowniku ec2-user, ale jakoś mi nie działa.
źródło
Mój klucz prywatny został ustawiony na pozwolenie
400
i spowodowało, że odmowa zezwolenia na ustawienie go na „644” pomogła mi.key_load_private_type: Odmowa dostępu to konkretny błąd, który otrzymywałem
Rozwiązanie:
Sudo chmod 644 <key.pem>
Uwaga: ustawienie 644 jest konieczne, nie działało z 400
źródło
Kiedy spróbujesz to zrobić
ssh -i <.pem path> root@ec2-public-dns
Otrzymasz komunikat z zaleceniem korzystania z
ec2-user
.Please login as the user "ec2-user" rather than the user "root".
Więc użyj
ssh -i <.pem path> ec2-user@ec2-public-dns
źródło
Miałem ten sam problem i to bardzo dziwne. Jeśli uważasz, że robisz wszystko dobrze, postępuj zgodnie z tym: Czasem zdarza się zamieszanie dotyczące użytkownika dla instancji EC2 !! Czasami dostajesz ec2-user, ubuntu, centos itp. Więc sprawdź swoją nazwę użytkownika dla machie !!
Zaloguj się z użytkownikiem root
ssh -i yourkey.pem (400 permission) root@<ip>
Wyrzuci błąd i poda dostępną nazwę użytkownika . następnie zaloguj się z tym użytkownikiem.źródło
Jest to podstawowa rzecz, ale zawsze potwierdzaj, którego użytkownika próbujesz zalogować. Im moja sprawa była tylko rozrywką . Próbowałem użyć użytkownika root :
Ale był inny użytkownik :
źródło
miałem ten sam błąd, ale inną sytuację. dla mnie stało się to nieoczekiwanie po długim czasie, kiedy mogłem pomyślnie ssh na moim zdalnym komputerze. po wielu poszukiwaniach rozwiązania mojego problemu były uprawnienia do plików. jest to oczywiście dziwne, ponieważ nie zmieniłem żadnych uprawnień na moim komputerze ani na komputerze zdalnym należącym do plików / katalogów ssh. więc z dobrej wiki archlinux tutaj:
W przypadku komputera lokalnego wykonaj następujące czynności:
W przypadku zdalnego komputera wykonaj następujące czynności:
potem mój ssh zaczął znowu działać bez zezwolenia odmowy (publickey).
źródło
Kolejny możliwy problem: błędny identyfikator logowania
Sprawdź „Instrukcje użytkowania”
Wszystkie dobre sugestie powyżej, ale natknąłem się na to, że wybrałem wstępnie przygotowaną instancję. Po uruchomieniu instancji zapoznaj się z instrukcjami użytkowania. Niepoprawnie użyłem identyfikatora logowania klucza prywatnego, gdy w instrukcji miałem użyć „bitnami” (np. Bitnami @ domain -i key.pem)
źródło
Miałem podobny błąd
Mój problem polegał na tym, że instancja nie uruchomiła się prawidłowo z powodu błędu w skrypcie uruchamiania przy uruchamianiu od
Step 3: Configure instance detail
dołuAdvanced details:
Co myślałem, że wszedłem:
#include https://xxxx/bootstrap.sh
To, co faktycznie wprowadzono, psuje konfigurację instancji
#include
https://xxxx/bootstrap.sh
Tak więc klucz publiczny po stronie instancji nie został utworzony
źródło
Rozróżnia małe i wielkie litery.
Źle: SSH EC2-user @ XXX.XX.XX.XX -i MyEC2KeyPair.pem
Prawidłowo: SSH ec2-user @ XXX.XX.XX.XX -i MyEC2KeyPair.pem
źródło
Byłem w stanie SSH z jednej maszyny, ale nie z drugiej. Okazuje się, że użyłem niewłaściwego klucza prywatnego.
Zrozumiałem to, pobierając klucz publiczny z mojego klucza prywatnego, jak poniżej:
ssh-keygen -y -f ./myprivatekey.pem
To, co wyszło, nie pasowało do tego, co było w
~/.ssh/authorized_keys
instancji EC2.źródło
Wszystkie wyżej ocenione odpowiedzi są prawidłowe i powinny działać w większości przypadków. W przypadku, gdy nie jest tak, jak w moim przypadku, po prostu pozbyłem się mojego
~/.ssh/known_hosts
pliku na maszynie, z której próbowałem ssh i to rozwiązało problem. Później mogłem się połączyć.źródło
known_hosts
może rozwiązać problem podczas łączenia się z serwerem, który zmienił swój klucz hosta (chociaż i tak jest to złe podejście), jestem prawie pewien, że nie może rozwiązać błędu „Odmowa zezwolenia (publickey)” .