Wygenerowałem klucz i skopiowałem go do mojego celu:
ssh-keygen
ssh-copy-id username@hostname
Zostawiłem domyślną lokalizację klucza i nie ustawiłem żadnego hasła.
Przez chwilę potem byłem w stanie ssh username@hostname
bez pytania o hasło, a potem przestało działać z jakiegoś powodu.
ssh
key-authentication
tshepang
źródło
źródło
Odpowiedzi:
Jeśli uwierzytelnianie za pomocą klucza publicznego nie działa: upewnij się, że po stronie serwera katalog domowy (
~
),~/.ssh
katalog i~/.ssh/authorized_keys
plik są zapisywalne tylko przez ich właściciela . W szczególności żadna z nich nie może być zapisywalna przez grupę (nawet jeśli użytkownik jest sam w grupie).chmod 755
lubchmod 700
jest w porządku,chmod 770
nie jest.Co sprawdzić, gdy coś jest nie tak:
ssh -vvv
aby zobaczyć wiele wyników debugowania. Jeśli opublikujesz pytanie z pytaniem, dlaczego nie możesz połączyć się z ssh, dołącz to wyjście (możesz chcieć anonimizować nazwy hosta i użytkownika)./var/log/daemon.log
lub/var/log/auth.log
lub podobny.źródło
authorized_keys
grupa nie powinna pisać? Czy SSH odrzuca to ze względów bezpieczeństwa?authorized_keys
może dodać własny klucz i zalogować się na konto. Dlatego tylko użytkownik musi mieć pozwolenie. (Możliwość zapisywania w grupie plików jest w rzeczywistości bezpieczna, jeśli w tej grupie nie ma innego użytkownika, ale trudno jest niezawodnie wykryć, kiedy członkostwo w grupie może pochodzić z sieciowych baz danych.)Katalogiem domowym celu był
755 drwxr-xr-x
. Zmiana na opcję zapisu grupowego775 drwxrwxr-x
złamała konfigurację bez hasła.źródło
Po upewnieniu się, że uprawnienia były prawidłowe, ponownie wysłano klucze, nadal nie działał.
Potem natknąłem się na to, czego nie zrobiłem wcześniej i nie widziałem, żeby ktoś o tym wspominał.
Nie można użyć opcji -o allow_other z sshfs (opcja włączona w fuse.conf)
Po włączeniu uruchomiłem moje polecenia sshfs bez sudo i wszystko działało idealnie.
źródło
Zakładając RHEL / CentOS i zakładając, że masz dostęp administratora do zdalnego serwera, na którym użytkownik
newuser
chce ssh.Uzyskaj
newuser's
istniejąceid_rsa.pub
i gotowe.Wykonaj kroki:
Spróbuj
newuser
się zalogować.źródło