Próba SSH do instancji Amazon Ec2-błąd uprawnień
To chyba głupie proste pytanie dla niektórych:)
Stworzyłem nową instancję Linuksa na Amazon EC2 i jako część tego pobrałem .plik pem pozwalający na SSH.
Kiedy próbowałem ssh z:ssh -i myfile.pem <public dns>
Mam:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for 'amazonec2.pem' are too open.
It is recommended that your private key files are NOT accessible by others.
This private key will be ignored.
bad permissions: ignore key: amazonec2.pem
Permission denied (publickey).
Following this post I tried to chmod +600 the pem file, but now when I ssh I just get:
Permission denied (publickey).
Jaki szkolny błąd popełniam tutaj? The .plik pem znajduje się w moim folderze domowym (w systemie osx). On uprawnienia wyglądają tak:
-rw-------@ 1 mattroberts staff 1696 19 Nov 11:20 amazonec2.pem
30 answers
Problem polega na tym, że w pliku znajduje się niewłaściwy mod.
Łatwo rozwiązać wykonując -
chmod 400 mykey.pem
Wzięte z instrukcji Amazona -
Twój plik klucza nie może być publicznie widoczny, aby SSH działał. Użyj tego polecenie w razie potrzeby: chmod 400 mykey.pem
400 chroni go, czyniąc go tylko do odczytu i tylko dla właściciela.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-05-12 12:30:56
Prawdopodobnie używasz niewłaściwej nazwy użytkownika, aby się zalogować:
- większość obrazów Ubuntu ma Użytkownika
ubuntu
- AMI Amazona to
ec2-user
- większość obrazów Debiana ma albo
root
alboadmin
Aby się zalogować, musisz dostosować polecenie ssh:
ssh -l USERNAME_HERE -i .ssh/yourkey.pem public-ec2-host
HTH
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-09-21 19:31:53
Wiem, że to jest bardzo późno na mecz ... ale to zawsze działa dla mnie:
Krok 1
ssh-add ~/.ssh/KEY_PAIR_NAME.pem
Krok 2, po prostu SSH w:)
ssh user_name@<instance public dns/ip>
Np.
ssh [email protected]
Mam nadzieję, że to komuś pomoże.Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-02-14 08:11:11
Ok człowieku, jedyne co mi się udało to:
-
Zmień uprawnienia klucza
Chmod 400 mykey.pem
-
Upewnij się, że logujesz się za pomocą ec2-user i poprawnego ec2-99... adres. Adres ec2-99 znajduje się na dole konsoli aws, gdy jesteś zalogowany i widzisz swoją instancję na liście
Ssh - i mykey.pem [email protected]
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-04-10 04:57:36
Spójrz na Ten artykuł . Nie używasz publicznego DNS, ale raczej formularza
ssh -i your.pem [email protected]
Gdzie nazwa jest widoczna na panelu AMI
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-11-19 11:43:29
W systemie windows można przejść do Właściwości pliku pem i przejść do zakładki zabezpieczenia, a następnie do przycisku advance.
Usuń dziedziczenie i wszystkie uprawnienia. więc daj sobie pełną kontrolę. w końcu SSL nie da ci ponownie tego samego błędu.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-12-14 15:53:50
Zmień uprawnienia dla pliku klucza za pomocą :
chmod 400 key-file-name.pem
Zobacz dokumentację AWS dla połączenia z instancją:
Http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EC2_GetStarted.html#EC2_ConnectToInstance_Linux
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-01-27 14:26:07
Wiem, że to pytanie zostało już udzielone, ale dla tych, którzy wypróbowali je wszystkie i nadal otrzymujesz irytujące " Permission denied (publickey)". Spróbuj uruchomić polecenie z SUDO. Oczywiście jest to rozwiązanie tymczasowe i powinieneś poprawnie ustawić uprawnienia, ale przynajmniej to pozwoli Ci zidentyfikować, że twój obecny użytkownik nie działa z uprawnieniami, których potrzebujesz (jak zakładałeś)
sudo ssh -i amazonec2.pem ec2-xxx-xxx-xxx-xxx.us-west-2.compute.amazonaws.com
Kiedy to zrobisz otrzymasz wiadomość jak to:
Please login as the user "ec2-user" rather than the user "root"
Co jest również słabo udokumentowane. W takim razie zrób to:
sudo ssh -i amazonec2.pem ec2-xxx-xxx-xxx-xxx.us-west-2.compute.amazonaws.com -l ec2-user
I dostaniesz chwalebne:
__| __|_ )
_| ( / Amazon Linux AMI
___|\___|___|
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-10-07 14:43:03
W Terminalu Mac, wykonując " chmod 400 xyz.pem" nie pomógł mi, ciągle powtarzał, że odmawiam pozwolenia. Dla użytkowników ubuntu proponuję
ssh-add xyz.pem
-
ssh -i xyz.pem [email protected]
(zauważ, że użytkownikiem jest ubuntu)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-06-29 22:43:10
Ssh-i /.pem user@host-machine-IP
Myślę, że to dlatego, że albo wpisałeś złe poświadczenia lub używasz klucza publicznego, a nie prywatnego lub, Twoje uprawnienia portu są otwarte dla wszystkich do ssh. To jest złe dla Amazon.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-09-28 08:20:28
Najlepsze praktyki dotyczące kluczy SSH i uprawnień do plików:
- .katalog ssh-0700 (tylko przez właściciela)
- klucz prywatny/.plik pem-0400 (tylko do odczytu przez właściciela)
-
Klucz publiczny/.plik pub-0600 (tylko do odczytu i zapisu przez właściciela)
chmod XXXX file/directory
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-01-07 23:42:01
Mogą być trzy przyczyny tego błędu.
-
Używasz złego klucza.
- twój klucz nie ma odpowiednich uprawnień. Musisz chmod to do 400. Używasz niewłaściwego użytkownika. Obrazy Ubuntu mają użytkownika ubuntu, AMI Amazona jest ec2-user , a obrazy Debiana mają root lub admin
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-07-12 06:53:20
Alternatywne logowanie za pomocą PuTTY. Jest dobry, ale wymaga kilku kroków.
-
Weź swoje .pem, który został wygenerowany podczas tworzenia instancji EC2.
- Convert the .plik pem .ppk używając PuttyGen ponieważ PuTTY nie czyta .pem.
- Otwórz PuTTY i wprowadź swoją nazwę hosta, która jest nazwą użytkownika Twojej instancji + publiczny DNS (np. [email protected]). nie Twoja nazwa użytkownika konta AWS.
- Następnie przejdź do połączenie > SSH > Auth. Następnie dodaj swój .plik ppk. Kliknij Browse gdzie jest napisane "plik klucza prywatnego do uwierzytelniania" .
- Kliknij przycisk Otwórz i powinieneś być w stanie natychmiast nawiązać połączenie.
Używam PuTTY 0.66 W Windows.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-06-20 09:12:55
Oprócz innych odpowiedzi, oto co zrobiłem, aby to zadziałało:
- skopiuj klucz do .folder ssh gdybyś nadal nie miał:
cp key.pem ~/.ssh/key.pem
- Nadaje odpowiednie uprawnienia do klucza
chmod 400 ~/.ssh/key.pem
- Uruchom ssh-agent (dzięki https://stackoverflow.com/a/17848593 )
eval `ssh-agent -s`
ssh-add
- Następnie dodaj klucz
ssh-add ~/.ssh/key.pem
Teraz powinieneś być w stanie ssh EC2 (:
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-03-04 15:55:52
Zrób chmod 400 yourkeyfile.pem Jeśli twoją instancją jest Amazon linux, użyj ssh - i yourkeyfile.pem ec2-user @ ip Dla ubuntu ssh - i yourkeyfile.pem ubuntu@ip dla centos ssh - i yourkeyfile.pem centos@ip
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-10-18 11:12:06
Domyślnie uprawnienia nie zezwalają na klucz pem. Musisz tylko zmienić uprawnienia:
Chmod 400 xyz.pem
I jeśli instancja ubuntu to Połącz używając:
Ssh - i xyz.pem [email protected]
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-11-29 04:25:21
Problemem dla mnie było to, że mój .plik pem znajdował się w jednej z moich partycji NTFS. Przeniosłem go na moją partycję linux (ext4).
Dał wymagane uprawnienia uruchamiając:
chmod 400 my_file.pem
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-03-25 11:32:31
Cóż, patrząc na twój opis postu czuję, że popełniłeś 2 Błędy: -
-
Ustaw poprawne uprawnienia dla klucza prywatnego . Poniższe polecenie powinno pomóc w ustawieniu poprawnej permission pliku.
chmod 0600 mykey.pem
-
Niewłaściwy użytkownik ec2 próbujesz się zalogować .
Patrząc na twój dziennik debugowania myślę, że stworzyłeś instancję Amazon linux. Domyślnym użytkownikiem dla tego typu instancji jest
ec2-user
. Gdyby instancja była ubuntu wtedy domyślnym użytkownikiem byłbyubuntu
.ssh -i privatekey.pem default_ssh_user@server_ip
Note: For an Amazon Linux AMI, the default user name is ec2-user. For a Centos AMI, the default user name is centos. For a Debian AMI, the default user name is admin or root. For a Fedora AMI, the default user name is ec2-user or fedora. For a RHEL AMI, the default user name is ec2-user or root. For a SUSE AMI, the default user name is ec2-user or root. For an Ubuntu AMI, the default user name is ubuntu. Otherwise, if ec2-user and root don't work, check with the AMI provider.
Źródło: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstancesLinux.html
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-06-21 10:15:28
Plik klucza nie powinien być publicznie widoczny, więc użyj uprawnień 400
chmod 400 keyfile.pem
Jeśli powyższe polecenie pokazuje błąd uprawnień użyj
sudo chmod 400 keyfile.pem
Teraz ssh do maszyny ec2, jeśli nadal masz problem, użyj ec2-user
SSH-i keyfile.pem [email protected]
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-06-21 10:56:18
Dla mnie to była edycja domyślnej grupy zabezpieczeń, aby umożliwić przychodzący ruch TCP na porcie 22:
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-07-24 17:22:28
W windows,
- Kliknij prawym przyciskiem myszy plik pem. Następnie wybierz Właściwości.
- Wybierz zakładkę Bezpieczeństwo -- > kliknij Edytuj -- > Usuń wszystkich innych użytkowników z wyjątkiem bieżącego użytkownika
- wróć do zakładki Bezpieczeństwo -- > kliknij Zaawansowane -- > Wyłącz dziedziczenie
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-09-21 10:36:32
Możesz znaleźć odpowiedź z przewodnika ASW. 400 chroni go, czyniąc go tylko do odczytu i tylko dla właściciela.
chmod 400 mykey.pem
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-12-14 01:00:55
Lista kontrolna:
Używasz odpowiedniego klucza prywatnego .plik pem?
Czy jego uprawnienia są ustawione poprawnie? (Mój Amazon-Marka amis działa z 644, ale Red hat musi być co najmniej 600 lub 400. Nie znam się na Ubuntu.)
-
Czy używasz odpowiedniej nazwy użytkownika w linii ssh? Amazon-branded = "ec2-user", Red Hat = "root", Ubuntu = "ubuntu". Użytkownik może być określony jako "ssh-i pem usename@hostname" lub "SSH-l username-i pem hostname"
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-03-29 20:06:52
Po prostu zmień uprawnienia pliku pem na 0600 pozwalając tylko na dozwolonego użytkownika i będzie działać jak charm.
sudo chmod 0600 myfile.pem
A następnie spróbuj ssh to będzie działać idealnie.
ssh -i myfile.pem <<ssh_user>>@<<server>>
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-10-24 03:03:55
To tylko problem z pozwoleniem z kluczem aws pem.
Wystarczy zmienić uprawnienia klucza pem na 400 używając poniższego polecenia.
chmod 400 pemkeyname.pem
Jeśli nie masz uprawnień do zmiany uprawnień pliku, możesz użyć sudo, jak poniżej.
sudo chmod 400 pemkeyname.pem
Mam nadzieję, że będzie dobrze.Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-05-02 06:38:55
Widziałem dwa powody tego problemu
1) klucz dostępu nie ma odpowiednich uprawnień. klucze pem z domyślnym uprawnieniem nie mogą nawiązywać bezpiecznego połączenia. Musisz tylko zmienić uprawnienia:
Chmod 400 xyz.pem
2) Sprawdź również, czy zalogowałeś się z odpowiednimi poświadczeniami użytkownika. W przeciwnym razie użyj sudo podczas łączenia
Sudo SSH-i {keyfile} ec2-user@{adres ip zdalnego hosta}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-06-08 05:28:54
Proszę zignorować tę odpowiedź, jeśli jest ona dla Ciebie nieistotna, ale z mojego doświadczenia widziałem ludzi mających problem z Permission denied (publickey)
ponieważ po prostu wklejali swój klucz publiczny (na docelowej maszynie) bez pierwszej litery!
Dzieje się tak przy użyciu vim do edycji (wklejenia) klucza. Ponieważ vim domyślnie otwiera się w trybie komend (nie w trybie insert ), wklejenie klucza bez przełączania na tryb insert (tzn. i
) spowoduje powoduje pominięcie pierwszej litery s
, np. zamiast
ssh-rsa <key>
Kończysz wklejając
sh-rsa <key>
Zanim wypróbujesz inne rozwiązania, Sprawdź czy poprawnie wkleiłeś swój klucz! tj.
cat ~/.ssh/id_rsa.pub
Tylko jeśli jesteś pewien, wykonaj kolejne kroki; próba ssh w trybie werbalnym (tj. flaga -v
) może wskazać rzeczywisty problem:
ssh -v -i <private_key> <name>@<ip> -p <port>
Na marginesie, jak to już wspomniano tutaj przez innych, w większości przypadków rozpoczynając pusty ssh agent (program, który przechowuje klucze w pamięci) i dodanie klucza powinno rozwiązać problem:
ssh-agent bash
ssh-add <private_key>
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-12-08 13:50:13
.400 chroni go, czyniąc go tylko do odczytu i tylko dla właściciela.
Odpowiedź znajdziesz w poradniku ASW.
chmod 400 yourPrivateKey.pem
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-02-18 00:09:59
Domyślnie po pobraniu pliku kluczowego ma on 644 uprawnienia.
Więc musisz zmienić uprawnienia za każdym razem, gdy pobierasz nowe klucze.
chmod 400 my_file.pem
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2021-01-09 11:33:52
Poniżej znajdują się proste kroki dla użytkownika Linuksa, aby połączyć się z serwerem za pomocą .plik pem:
Krok 1: Przejdź do lokalizacji pliku pem i skopiuj go do strony głównej .lokalizacja ssh.
cp example.pem ~/.ssh/example.pem
Krok 2: zmiana uprawnień
chmod 400 ~/.ssh/example.pem
Krok 3: Uruchom następujące polecenie
ssh -i ~/.ssh/example.pem [email protected]
Ponieważ to polecenie jest zbyt długie, więc należy utworzyć alias tego za pomocą następujących poleceń:
vim ~/.bashrc
Zapisz na końcu tę samą komendę w następujący sposób.
alias sshConnect='ssh -i ~/.ssh/example.pem [email protected]'
Teraz uruchom ponownie Twój system i użyj sshConnect
, aby połączyć się z serwerem.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-10-12 06:34:14