2010-02-01 8 views
23

Jestem nowy w EC2. Tworzę poświadczenia bezpieczeństwa ze strony:Błąd uprawnień podczas łączenia się z EC2 przez SSH na Mac OSx

http://paulstamatiou.com/how-to-getting-started-with-amazon-ec2

To było wspaniałe, ja uruchomiona ponownie, a teraz, gdy próbuję połączyć otrzymuję monit login/hasło. (Którego nigdy nie skonfigurowałem.) Po kilku próbach pojawia się ten błąd:

Odmowa uprawnień (publickey, gssapi-with-mic).

Co robię źle?

+0

Pomoc! jakieś pomysły? –

Odpowiedz

52

dwie możliwości mogę myśleć, chociaż obie są wymienione w linku przywoływane:

  1. Nie jesteś podając poprawny plik parę kluczy SSH lub nazwę użytkownika w poleceniu ssh używasz zalogować się do serwera:

    ssh -i [pełna ścieżka do pary kluczy file] root @ [EC2 instancji hosta lub adres IP]

  2. nie masz odpowiednie uprawnienia do pliku pary kluczy; należy użyć

    chmod 600 plik] [parę kluczy

aby upewnić się, że tylko można odczytać lub zapisać plik.

Spróbuj użyć opcji -v z ssh, aby uzyskać więcej informacji o tym, gdzie dokładnie się to nie udaje, i odeślij ją tutaj, jeśli potrzebujesz dodatkowej pomocy.

[Aktualizacja]: OK, więc to jest to, czego powinny widzieli, czy wszystko zostało prawidłowo skonfigurowane:

debug1: Authentications that can continue: publickey,gssapi-with-mic 
debug1: Next authentication method: publickey 
debug1: Trying private key: ec2-keypair 
debug1: read PEM private key done: type RSA 
debug1: Authentication succeeded (publickey). 

Czy uruchamiając komendę ssh z katalogu zawierającego plik EC2-parę kluczy? Jeśli tak, spróbuj podać parametr -i ./ec2-keypair, aby wyeliminować problemy z ścieżkami. Sprawdź także plik "ls -l [pełna ścieżka do pliku EC2-keypair]" i upewnij się, że uprawnienia to 600 (wyświetlane jako rw -------). Jeśli nic z tego nie działa, podejrzewam zawartość pliku klucza, więc spróbuj odtworzyć go, wykonując kroki w twoim łączu.

+0

Oto konkretne informacje dotyczące błędu: debug1: uwierzytelnianie, które można kontynuować: PublicKey, gssapi-with-mic debug1: Następna metoda uwierzytelniania: PublicKey debug1: staram klucz prywatny: EC2-parę kluczy debug1: odczyt PEM prywatne key done: type RSA debug1: Uwierzytelnienia, które można kontynuować: publickey, gssapi-with-mic debug1: Koniec z metodami uwierzytelniania do wypróbowania. Odmowa uprawnień (publickey, gssapi-with-mic). –

+0

Edytowałem swoją odpowiedź, aby dodać więcej informacji, ponieważ nie ma miejsca na umieszczenie jej w nowym komentarzu. –

+0

Sprawdziłem to. Mam dwa identyfikatory dla jednej witryny i dla innej witryny. Mogę użyć tego samego klucza, który powoduje problemy w innej instancji bez problemu. Czy problem może dotyczyć tej konkretnej instancji? Dziękuję za pomoc. –

14

Kluczem dla mnie, aby móc się połączyć, było użycie użytkownika "ec2-user" zamiast root. Np.:

ssh -i [full path to keypair file] [email protected][EC2 instance hostname or IP address] 
+1

+1 Wystąpił ten sam problem, dopóki nie przełączyłem użytkownika z ec2user na użytkownika ec2 zgodnie z sugestią. –

+2

W zależności od użytej dystrybucji AMI/Linux, poprawną nazwą użytkownika dla wiersza poleceń ssh może być root, ubuntu, ec2-user lub może inne. –

3

Czy jesteś pewien, że użyłeś właściwej instancji? Wpadłem na ten problem i zdałem sobie sprawę, że coś takiego jak 4 z instancji ubuntu, które wypróbowałem, nie miało zainstalowanych na nich serwerów SSH.

Lista dobrych serwerów znajduje się w części "Uzyskiwanie obrazów" mniej więcej w połowie. Wygląda na to, że możesz używać czegoś innego ... domyślną nazwą użytkownika jest ubuntu na tych obrazach.

https://help.ubuntu.com/community/EC2StartersGuide

+0

nazwa użytkownika "ubuntu" naprawiono to dla mnie – samuelsaumanchan

0

Jeśli masz plik PPK pracy na komputerze, a następnie wyeksportować go jako plik OpenSSH za pomocą puttygen.exe do komputera i używać na komputerze Mac (dowolny maszynowego Unix).

byłem coraz ten sam błąd -

debug1: Authentications that can continue: publickey,gssapi-with-mic 
debug1: Next authentication method: publickey 
debug1: Trying private key: ec2-keypair 
debug1: read PEM private key done: type RSA 
debug1: Authentications that can continue: publickey,gssapi-with-mic 
debug1: No more authentication methods to try. 
Permission denied (publickey,gssapi-with-mic) 

Jak już przy użyciu pliku PPK w systemie Windows, a następnie kroki I jak opisano powyżej i Bingo!

$ ssh -i EC2-OpenSSH klucz root @ EC2 instancji-ip

5

W moim przypadku to dlatego, że uprawnienie do mojego katalogu domowego jest 775, i SSH nie jest zadowolony. Powinno działać po wykonaniu:

server$ chmod go-w ~/ 
server$ chmod 700 ~/.ssh 
server$ chmod 600 ~/.ssh/authorized_keys 

Tego popołudnia miałem podobne doświadczenia. Przygotowałem django na EC2 i nagle nie mogę już dołączyć do SSH. Cieszę się, że miałem jeszcze aktywnego połączenia, więc zmodyfikowane /etc/ssh/sshd_config ustawić:

PasswordAuthentication yes 

i ustawić hasło dla ec2-user, wtedy mogę się zalogować wpisując hasło.

Jednak po jakimś przeszukaniu znalazłem ten wątek: http://ubuntuforums.org/showthread.php?t=577279. Okazało się, że podczas mojej instalacji django zmieniłem uprawnienia do mojego katalogu domowego, a SSH jest bardzo surowy. Tak więc uprawnienie do pliku musi być ustawione poprawnie.

+0

"Okazało się, że podczas mojej instalacji django zmieniłem uprawnienia do mojego katalogu domowego, a SSH jest bardzo surowy w tym zakresie". Miałem ten sam problem, więc widząc tę ​​wskazówkę, spróbowałem tylko tego do diabła i wszystko działało! ! @ # $% Dlaczego katalog domowy również musi być 700 oprócz .ssh/jest poza mną. To nie sprawia, że ​​jest bezpieczniejsza. – aqn

2

udało mi się zalogować używając EC2 użytkownik

ssh -i [pełną ścieżkę do pary kluczy plik] EC2-user @ [EC2 instancji nazwę hosta lub adres IP]

4

Oznaczanie na odpowiedź mecca831 męska:

ssh -v -i generowane-key.pem [email protected]

[[email protected] ~] $ sudo passwd EC2-user newpassword newpassword

[[email protected] ~] $ sudo vi/etc/ssh/sshd_config Modyfikowanie pliku w następujący sposób:

# To disable tunneled clear text passwords, change to no here! 
    PasswordAuthentication yes 
    #PermitEmptyPasswords no 
    # EC2 uses keys for remote access 
    #PasswordAuthentication no 

Zapisz

[EC2-user @ ip 11.11.11.11 ~] sshd $ sudo service zatrzymać [[email protected] ~] $ sudo service sshd rozpocząć

powinien być w stanie wyjść i ssh w sposób następujący:

ssh [email protected] 

i monit o podanie hasła, które nie wymaga już użycia klucza.

1

Żadne z powyższych nie pomogło mi, ale zamęt z użytkownikiem wydawał się być obiecujący. Dla mojego config, używając 'ubuntu' miał rację .....

ssh -i [pełną ścieżkę dostępu do pliku pary kluczy] ubuntu @ [EC2 instancji nazwę hosta lub adres IP]

0

miałem ten sam problem przy użyciu AWS Toolkit dla Eclipse. Stworzyłem instancję Getting Started OK i otworzyłem powłokę. Jednak użytkownik został ustawiony na użytkownika ec2. Użyłem polecenia Otwórz powłokę jako ... i ustaw użytkownika na root. Potem zadziałało.

1

Po około pół godzinie szukania i próby debugowania tego udało mi się to rozgryźć. Moja sytuacja wymagała użycia tego samego pliku pem dla dwóch różnych instancji ec2 i działa dla jednego, a nie dla drugiego.

Moją pierwszą instancją, nad którą pracował, był standardowy aws linux ami amzn-ami-hvm-2014.03.2.x86_64-ebs. Po prostu użyłem:

i zadziałało.

I wtedy rozpoczęła instancji fedora fedora-x86_64-19-20140407-sda i próbował to samo polecenie, ale ciągle się:

Permission denied (publickey,gssapi-keyex,gssapi-with-mic). 

Po zmianie nazwy użytkownika od użytkownika do EC2 Fedora to działało!

ssh -i mypemfile.pem [email protected] 
1

Polecam przeciw ustawianiu hasła, ponieważ sugerują inne odpowiedzi. Używanie pliku klucza jest bezpieczniejsze (nikt nie może odgadnąć twoich haseł) i wygodniejsze (po skonfigurowaniu pliku konfiguracyjnego). Oto podstawowe ~/.ssh/config:

Host my-ec2-server 
    HostName 11.11.11.11 
    User ec2-user 
    IdentityFile /path/to/generated-key.pem 

Teraz wystarczy wpisać ssh my-ec2-server i jesteś w! Jak wspomniano w innych odpowiedziach, użyj -v, aby uzyskać dodatkowe informacje, gdy twoje połączenie nie działa.

2

+1

Zauważyłem, że dla niektórych Amis jak Amazon Linux [email protected] będzie działać. Ale na obraz ubuntu musiałem zamiast tego użyć ubuntu @. Nigdy nie było problemu z .pem, tylko z nazwą użytkownika.

+0

Miałem ten sam problem, który został rozwiązany przy użyciu prawidłowej domyślnej nazwy użytkownika. Moja instancja ec2 to Red Hat Linux, a nazwa użytkownika była używana w chmurze. Więc ssh -i /path/to/key.pem cloud-user @ działało. – Stuart

3

Poznałem ten problem too.And I okazało się, że stało beacuse zapomniałem dodać-nazwy użytkownika przed nazwą hosta: tak:

ssh -i test.pem ec2-32-122-42-91.us-west-2.compute.amazonaws.com 

i dodać nazwę użytkownika:

ssh -i test.pem [email protected] 

to działa!

Powiązane problemy