2010-11-26 22:04:58 +0000 2010-11-26 22:04:58 +0000
411
411

Uprawnienia do klucza prywatnego w folderze .ssh?

Zmieniłem swoje uprawnienia w folderze .ssh i teraz, kiedy używam oprogramowania, które używa mojego klucza prywatnego, muszę za każdym razem wpisać hasło. Jakie uprawnienia powinny znajdować się w moim pliku id_rsa, aby nie musieć wpisywać hasła za każdym razem, gdy korzystam z aplikacji, która go używa?

Obecnie moje uprawnienia są ustawione na:

-rw-------@ 1 Jody staff 114 Nov 4 23:29 config
-rw------- 1 Jody staff 1743 Oct 21 2009 id_rsa
-rw-------@ 1 Jody staff 397 Oct 21 2009 id_rsa.pub 
-rw-------@ 1 Jody staff 3855 Sep 13 22:35 known_hosts

Odpowiedzi (4)

93
93
93
2015-06-09 20:39:45 +0000

Zmagałem się z tym na zawsze i w końcu zorientowałem się, co jest potrzebne. Wymień $USER wszędzie na nazwę użytkownika SSH, do którego chcesz się zalogować na serwerze. Jeśli próbujesz zalogować się jako root, będziesz musiał użyć /root/.ssh itd, zamiast /home/root/.ssh, jak to jest w przypadku użytkowników nie będących rootami.

  • Katalog domowy na serwerze nie powinien być zapisywany przez innych: chmod go-w /home/$USER
  • Katalog SSH na serwerze wymaga 700 uprawnień: chmod 700 /home/$USER/.ssh
  • Autoryzowany plik kluczy wymaga 644 uprawnień: `chmod 644 /home/$USER/.ssh/authorizedkeys`
  • Upewnij się, że user jest właścicielem plików/folderów, a nie root: chown user:user authorized_keys and chown user:user /home/$USER/.ssh
  • Umieść wygenerowany klucz publiczny (z ssh-keygen) w pliku authorized_keys użytkownika na serwerze
  • Upewnij się, że katalog domowy użytkownika jest ustawiony na to, czego oczekujesz i że zawiera prawidłowy folder .ssh, który został zmodyfikowany. Jeśli nie, użyj usermod -d /home/$USER $USER, aby naprawić problem
  • Na koniec zrestartuj ssh: service ssh restart
  • Następnie upewnij się, że klient posiada pliki klucza publicznego i prywatnego w folderze .ssh lokalnego użytkownika oraz login: ssh user@host.com
37
37
37
2013-01-03 03:50:21 +0000

Upewnij się również, że Twój katalog domowy nie jest przeznaczony do zapisu przez innych użytkowników.

chmod g-w,o-w ~

6
6
6
2010-11-26 22:07:13 +0000

Zezwolenia nie powinny mieć z tym nic wspólnego. Twój klucz prywatny jest szyfrowany hasłem, więc musisz go wprowadzić, aby klucz prywatny mógł być odszyfrowany i użyteczny.

Możesz rozważyć uruchomienie agenta ssh, który może buforować odszyfrowane klucze i dostarczać je do aplikacji, które ich potrzebują.

4
4
4
2014-04-17 20:20:44 +0000

Felipe jest poprawny - katalog zawierający twój katalog .ssh nie może być zapisywany według grup lub innych. Tak więc chmod go-w ~ jest następną logiczną rzeczą, którą należy wypróbować, jeśli podczas ssh'ing po uruchomieniu ssh-keygen -t rsa; cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys nadal będziesz pytany o hasło, zakładając, że nie przypisałeś hasła w poleceniu ssh-keygen, a Twój katalog .ssh znajduje się w Twoim katalogu domowym.