Generuję parę kluczy ssh na moim komputerze Mac i dodaję klucz publiczny do mojego serwera Ubuntu (w rzeczywistości jest to maszyna wirtualna na moim komputerze Mac), ale kiedy próbuję zalogować się do serwera Ubuntu, mówi:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for '/Users/tudouya/.ssh/vm/vm_id_rsa.pub' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
bad permissions: ignore key: /Users/tudouya/.ssh/vm/vm_id_rsa.pub
Permission denied (publickey,password).
Próbowałem wielu sposobów, aby rozwiązać ten problem, zmienić tryb pliku klucza, zmienić tryb folderu, ponieważ niektóre odpowiedzi na stackoverflow, ale to nie działa.
uprawnienie do pliku klucza:
vm dir:
drwxr-xr-x 4 tudouya staff 136 4 29 10:37 vm
key file:
-rw------- 1 tudouya staff 1679 4 29 10:30 vm_id_rsa
-rw-r--r-- 1 tudouya staff 391 4 29 10:30 vm_id_rsa.pub
daj mi jakiś pomysł ... =========================================
I napisz informacje o hoście do ssh_config:
Host ubuntuvm
Hostname 10.211.55.17
PreferredAuthentications publickey
IdentityFile /Users/tudouya/.ssh/vm/vm_id_rsa.pub
Uruchamiam polecenie „ssh -v ubuntuvm”, wyświetla:
ssh -v ubuntuvm
OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011
debug1: Reading configuration data /etc/ssh_config
debug1: /etc/ssh_config line 20: Applying options for *
debug1: /etc/ssh_config line 103: Applying options for *
debug1: /etc/ssh_config line 175: Applying options for ubuntuvm
debug1: Connecting to 10.211.55.17 [10.211.55.17] port 22.
debug1: Connection established.
debug1: identity file /Users/tudouya/.ssh/vm/vm_id_rsa.pub type 1
debug1: identity file /Users/tudouya/.ssh/vm/vm_id_rsa.pub-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.2
debug1: Remote protocol version 2.0, remote software version OpenSSH_6.6.1p1 Ubuntu-8
debug1: match: OpenSSH_6.6.1p1 Ubuntu-8 pat OpenSSH*
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr [email protected] none
debug1: kex: client->server aes128-ctr [email protected] none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
debug1: Server host key: RSA 55:6d:4f:0f:23:51:ac:8e:70:01:ec:0e:62:9e:1c:10
debug1: Host '10.211.55.17' is known and matches the RSA host key.
debug1: Found key in /Users/tudouya/.ssh/known_hosts:54
debug1: ssh_rsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: Roaming not allowed by server
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /Users/tudouya/.ssh/vm/vm_id_rsa.pub
debug1: Server accepts key: pkalg ssh-rsa blen 279
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for '/Users/tudouya/.ssh/vm/vm_id_rsa.pub' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
bad permissions: ignore key: /Users/tudouya/.ssh/vm/vm_id_rsa.pub
debug1: No more authentication methods to try.
Permission denied (publickey,password).
ssh
permissions
key
土豆 丫
źródło
źródło
-i id_rsa.pub
do połączenia polecenia ssh. Wydaje się, że egzekwowanie użycia klucza publicznego w ssh dowodzi, aby poprosić o hasło (nawet gdy hasło było puste, przynajmniej w moim przypadku)Odpowiedzi:
Wygląda na to, że próbujesz użyć niewłaściwego pliku klucza. Plik z rozszerzeniem „.pub” jest plikiem klucza publicznego . Odpowiedni plik bez rozszerzenia „.pub” to plik klucza prywatnego . Po uruchomieniu klienta ssh w celu nawiązania połączenia ze zdalnym serwerem należy dostarczyć klientowi plik ssh plik klucza prywatnego.
Prawdopodobnie masz plik w swoim
.ssh/config
pliku (lub/etc/ssh_config
), który wygląda następująco:Musisz usunąć rozszerzenie „.pub” z nazwy pliku:
źródło
.pub
plik public ( ) zamiast pliku prywatnego.ssh -i id_ed25519.pub
podczas gdy robięssh -i id_ed25519
praceProponuję zrobić:
Dla mnie praca jest w porządku.
źródło
“Permissions 0644 for 'id_rsa.pub' are too open."
i dlatego klucz został zignorowany. Prawdopodobnie dlatego, że skopiowałem plik klucza z innego komputera. Ale naprawianie uprawnień rozwiązało problem. dzięki!Klucz powinien być czytelny dla zalogowanego użytkownika.
Spróbuj tego:
źródło
ssh-add ~/.ssh/id_rsa.pub
To praca dla mnie. Kiedy zrobiłem ten plik, mogę połączyć się z moją instancją EC2
źródło
Po uruchomieniu polecenia poniżej działa dla mnie
źródło
W moim przypadku był to plik .pem. Okazuje się, że jest to również dobre. Zmieniono uprawnienia do pliku i zadziałało.
chmod 400 ~/.ssh/dev-shared.pem
Dziękuję wszystkim, którzy pomogli powyżej.
źródło
Jeśli klucze znajdują się w katalogu ~ / .ssh, użyj
chmod 400 ~ / .ssh / id_rsa
Jeśli klucze znajdują się w innym katalogu, użyj
chmod 400 ścieżka_katalogu / id_rsa
To zadziałało dla mnie.
źródło
chmod 400 ~/.ssh/id_rsa
to ci chodziło @Airirban. Jak wspomniano powyżej: plik z rozszerzeniem „.pub” jest plikiem klucza publicznego. Odpowiedni plik bez rozszerzenia „.pub” to plik klucza prywatnego. Musimy chronić prywatną.Wiele podobnych odpowiedzi, ale bez wyjaśnień ...
Błąd jest zgłaszany, ponieważ uprawnienia do pliku klucza prywatnego są zbyt otwarte. Jest to ryzyko bezpieczeństwa.
Zmień uprawnienia do pliku klucza prywatnego na minimalne (tylko do odczytu przez właściciela)
chown <unix-name> <private-key-file>
chmod 400 <private-key-file>
źródło
Jak dla mnie domyślnym trybem
id_rsa
jest600
, co oznaczareadable
iwritable
.Po wypchnięciu tego pliku do repozytorium git i ściągnięciu go z innego komputera, czasami zmienia się tryb pliku klucza prywatnego
-rw-r--r--
.Kiedy ściągam repozytorium za pomocą ssh po określeniu pliku klucza prywatnego, nie powiodło się i tak samo z tobą poprosił o ostrzeżenia. Oto mój skrypt.
Rozwiązuję ten problem, po prostu zmieniając tryb na
600
.źródło
udzielenie zezwolenia 400 powoduje, że klucz jest prywatny i nie jest dostępny dla kogoś nieznanego. Sprawia, że klucz jest chroniony.
źródło
chmod 400 /etc/ssh/*
pracuje dla mnie.źródło
Jeśli używasz pliku .ssh / config, spróbuj
następnie:
źródło
Ci, którzy zasugerowali chmod 400 id_rsa.pub, wcale nie brzmią dobrze. Całkiem możliwe, że op używał klucza pub zamiast klucza prywatnego do ssh.
Może to być tak proste, jak
ssh -i /Users/tudouya/.ssh/vm/vm_id_rsa (the private key) user@host
to naprawić.--- aktualizacja ---
Sprawdź ten artykuł https://www.digitalocean.com/community/tutorials/how-to-set-up-ssh-keys--2, aby dowiedzieć się, jak skonfigurować klucz ssh
źródło
Klucze SSH mają być prywatne, więc
644
zezwolenie jest zbyt otwarte.Zmieniając uprawnienia pliku do
600
używaniarozwiązuje problem. Ponieważ sprawia, że klucz jest dostępny tylko dla użytkownika.
Patrz: https://www.linux.com/training-tutorials/understanding-linux-file-permissions/
źródło
Po prostu biegnij poniżej do swoich pem
źródło
Usunąłem
.pub file
i zadziałało.źródło
ssh-keygen -i -f /path/to/private.key > /desired/path/to/public.key
. Tak naprawdę to nie jest stracone. :)