Uprawnienia klucza SSH Ustawienia Chmod?

63

Muszę użyć SSH na moim komputerze, aby uzyskać dostęp do mojej witryny i jej baz danych (konfigurowanie dowiązania symbolicznego - ale robię dygresję).

Następujący problem: wpisuję polecenie: ssh-keygen -t dsa
Aby wygenerować publiczną / prywatną parę kluczy dsa. Zapisuję go w domyślnej ( /home/user/.ssh/id_dsa): i dwukrotnie wpisz Enter hasło

wtedy odzyskam to:

OSTRZEŻENIE: NIEBEZPIECZNY PRYWATNY KLUCZOWY PLIK!
Uprawnienia 0755 dla „/home/etc.ssh/id_rsa” są zbyt otwarte. Zaleca się, aby pliki kluczy prywatnych NIE były dostępne dla innych. Ten klucz prywatny zostanie zignorowany. złe uprawnienia: zignoruj ​​klucz: [następnie ŚCIEŻKA PLIKU w VAR / LIB / SOMEWHERE]

Teraz, aby obejść ten problem, spróbowałem-

sudo chmod 600 ~/.ssh/id_rsa         sudo chmod 600 ~/.ssh/id_rsa.pub    

Ale wkrótce po tym, jak mój komputer zawiesił się - i po ponownym zalogowaniu się pojawiło się could not find .ICEauthority error. Rozwiązałem ten problem i usunąłem pliki SSH, ale chcę móc korzystać z odpowiednich uprawnień, aby uniknąć tych problemów w przyszłości. Jak skonfigurować ICEauthority lub gdzie zapisać klucze SSH? Jakie uprawnienia powinny mieć? Czy używanie maszyny wirtualnej byłoby najlepsze?

To wszystko jest bardzo nowe i jestem na bardzo stromej ścieżce uczenia się, więc doceniam każdą pomoc.

crissixpaul
źródło
typo- przepraszamy, wygenerowano tylko jeden zestaw kluczy!
crissixpaul
uprawnienia do .ssh dir są równie ważne jak uprawnienia kluczowe. To powinno być 600. Aby rozwiązać go uruchomić: chmod -R 600 ~/.ssh.
KWubbufetowicz
4
w rzeczywistości uprawnienia do katalogu .ssh muszą wynosić 700, a nie 600. Uprawnienie do wykonywania to takie, które daje dostęp do zawartości tego katalogu. Tak więc poprawne polecenia powinny być chmod 700 $HOME/.sshichmod 600 $HOME/.ssh/id_rsa
MelBurslan
Błąd dotyczący .ICEauthority nie jest związany z wyświetlanymi chmodpoleceniami. Albo to zbieg okoliczności, albo uruchomiłeś inne polecenia, których nam nie pokazujesz.
Gilles,

Odpowiedzi:

92

chmod 600 ~/.ssh/id_rsa; chmod 600 ~/.ssh/id_rsa.pub(tj. chmod u=rw,go= ~/.ssh/id_rsa ~/.ssh/id_rsa.pub) są poprawne.

chmod 644 ~/.ssh/id_rsa.pub(tj. chmod a=r,u+w ~/.ssh/id_rsa.pub) również byłoby poprawne, ale chmod 644 ~/.ssh/id_rsa(tj. chmod a=r,u+w ~/.ssh/id_rsa) nie byłoby. Twój klucz publiczny może być publiczny, ważne jest, że klucz prywatny jest prywatny.

Również .sshsam katalog musi być zapisywalny tylko przez Ciebie: chmod 700 ~/.sshlub chmod u=rwx,go= ~/.ssh. Oczywiście musisz mieć możliwość odczytu i dostępu do plików w nim zawartych (wykonaj zezwolenie). Nie jest bezpośrednio szkodliwy, jeśli inni mogą go przeczytać, ale nie jest również użyteczny.

Nie trzeba sudo. Nie używaj sudodo manipulowania własnymi plikami, które mogą prowadzić tylko do błędów.

Błąd o .ICEauthoritynie jest związany z wyświetlanymi chmodpoleceniami. Albo to zbieg okoliczności, albo uruchomiłeś inne polecenia, których nam nie pokazujesz.

Gilles
źródło
Jakie muszą być uprawnienia na ~ / .ssh / known_hosts?
nikc
0

Chcę dodać do powyższych odpowiedzi, że dla mnie mój katalog domowy ( ~/) również musiał mieć uprawnienia 755, niezależnie od uprawnień ~/.sshi plików w nim zawartych. (To było na serwerze Synology NAS, może nie dotyczyć wszystkich linuksów)

hoelk
źródło