Pracuję nad skonfigurowaniem Pandy w instancji Amazon EC2. Skonfigurowałem swoje konto i narzędzia ostatniej nocy i nie miałem problemu z użyciem SSH do interakcji z moją osobistą instancją, ale teraz nie mam pozwolenia na instancję Pandy EC2. Pierwsze kroki z Pandą
Otrzymuję następujący błąd:
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
Permissions 0644 for '~/.ec2/id_rsa-gsg-keypair' are too open.
It is recommended that your private key files are NOT accessible by others.
This private key will be ignored.
Przeskoczyłem moją parę kluczy do 600, aby dostać się do mojej osobistej instancji zeszłej nocy, i eksperymentowałem długo ustawiając uprawnienia na 0, a nawet generując nowe ciągi kluczy, ale wydaje się, że nic nie działa.
Każda pomoc byłaby świetną pomocą!
Hm, wygląda na to, że jeśli uprawnienia do katalogu nie są ustawione na 777, skrypt ec2-run-instances nie może znaleźć moich plików kluczy. Jestem nowy w SSH, więc mogę coś przeoczyć.
chmod 400 ~/.ssh/id_rsa
Odniesienie: stackoverflow.com/a/9270753/2082569Odpowiedzi:
I tak właśnie powinno być.
Z dokumentacji EC2 mamy: „Jeśli korzystasz z OpenSSH (lub innego w miarę paranoicznego klienta SSH), prawdopodobnie będziesz musiał ustawić uprawnienia do tego pliku, aby był on tylko do odczytu”. Dokumentacja Panda, którą łączysz z linkami do dokumentacji Amazon, ale tak naprawdę nie pokazuje, jak ważne jest to wszystko.
Chodzi o to, że pliki pary kluczy są jak hasła i muszą być chronione. Tak więc klient ssh, którego używasz, wymaga zabezpieczenia tych plików i tylko ich konto może je odczytać.
Ustawienie katalogu na 700 naprawdę powinno wystarczyć, ale 777 nie będzie bolało, dopóki pliki będą mieć 600.
Wszelkie problemy, które masz, są po stronie klienta, więc pamiętaj o dołączeniu informacji o lokalnym systemie operacyjnym do wszelkich dalszych pytań!
źródło
Upewnij się, że katalog zawierający pliki kluczy prywatnych jest ustawiony na 700
źródło
Aby to naprawić: 1) musisz przywrócić uprawnienia do wartości domyślnych:
sudo chmod 600 ~/.ssh/id_rsa sudo chmod 600 ~/.ssh/id_rsa.pub
Jeśli pojawia się kolejny błąd: Czy na pewno chcesz kontynuować połączenie (tak / nie)? tak Nie udało się dodać hosta do listy znanych hostów (/home/geek/.ssh/known_hosts).
2) Oznacza to, że uprawnienia do tego pliku są również ustawione niepoprawnie i można to zmienić za pomocą:
sudo chmod 644 ~/.ssh/known_hosts
3) Na koniec może być konieczne dostosowanie uprawnień do katalogu:
sudo chmod 755 ~/.ssh
To powinno przywrócić Ci działanie.
źródło
Plik klucza prywatnego powinien być chroniony. W moim przypadku od dłuższego czasu korzystam z uwierzytelniania klucza publicznego i ustawiłem uprawnienia jako 600 (rw- --- ---) dla klucza prywatnego i 644 (rw- r-- r--) oraz dla do folderu .ssh w folderze domowym będziesz mieć 700 uprawnień (rwx --- ---). Aby to ustawić, przejdź do folderu domowego użytkownika i uruchom następujące polecenie
Ustaw uprawnienia 700 dla folderu .ssh
Ustaw uprawnienie 600 dla pliku klucza prywatnego
Ustaw 644 uprawnienia do pliku klucza publicznego
źródło
Mam również ten sam problem, ale rozwiązuję go, zmieniając uprawnienia do pliku kluczy na 600.
sudo chmod 600 /path/to/my/key.pem
Link: http://stackabuse.com/how-to-fix-warning-unprotected-private-key-file-on-mac-and-linux/
źródło
Trzymaj swój klucz prywatny, klucz publiczny, znane_hosty w tym samym katalogu i spróbuj zalogować się jak poniżej:
cd /Users/prince/Desktop
. Teraz wpiszls
polecenie i powinieneś zobaczyć**.pem **.ppk known_hosts
Uwaga: musisz spróbować zalogować się z tego samego katalogu, inaczej dostaniesz błąd odmowy uprawnień, ponieważ nie może on znaleźć pliku .pem z bieżącego katalogu.
Jeśli chcesz mieć możliwość SSH z dowolnego katalogu, możesz dodać do
~/.ssh/config
pliku następujące informacje ...Teraz możesz połączyć się z serwerem SSH niezależnie od tego, gdzie znajduje się katalog, po prostu wpisując
ssh your.server
(lub dowolną nazwę umieszczoną po „Host”).źródło
W systemie Windows spróbuj użyć git bash i tam użyj poleceń systemu Linux. Łatwe podejście
źródło
Zmień uprawnienia do pliku za pomocą komendy chmod
źródło
Zastanawiam się nad czymś innym. Jeśli próbujesz zalogować się przy użyciu innej nazwy użytkownika, która nie istnieje, to otrzymujesz wiadomość.
Zakładam więc, że próbujesz ssh z użytkownikiem ec2, ale ostatnio pamiętam, że większość AMI centos używa na przykład użytkownika centos zamiast użytkownika ec2
więc jeśli tak,
ssh -i file.pem centos@public_IP
proszę powiedz mi, że próbujesz ssh z właściwą nazwą użytkownika, w przeciwnym razie może to być silny powód, dla którego widzisz taki komunikat o błędzie, nawet z odpowiednimi uprawnieniami na ~ / .ssh / id_rsa lub file.pemźródło
Uwaga dla każdego, kto się na to natknie:
Jeśli próbujesz SSH za pomocą klucza, który został Ci udostępniony, na przykład:
ssh -i /path/to/keyfile.pem user@some-host
Gdzie
keyfile.pem
klucz prywatny / publiczny jest Ci udostępniany i używasz go do łączenia się, upewnij się, że zapisałeś go w~/.ssh/
ichmod 777
.Próba użycia pliku, gdy został zapisany w innym miejscu na moim komputerze, dawała błąd OP. Nie jestem pewien, czy jest to bezpośrednio powiązane.
źródło
Rozwiązaniem jest, aby był czytelny tylko dla właściciela pliku, tzn. Ostatnie dwie cyfry reprezentacji trybu ósemkowego powinny wynosić zero (np. Tryb
0400
).OpenSSH sprawdza to w
authfile.c
funkcji o nazwiesshkey_perm_ok
:Zobacz pierwszy wiersz po komentarzu: robi „bitowe i” w stosunku do trybu pliku, zaznaczając wszystkie bity w ostatnich dwóch cyfrach ósemkowych (ponieważ
07
jest ósemkowe0b111
, gdzie każdy bit oznacza odpowiednio r / w / x) .źródło