SSH - określ, którzy użytkownicy nadal logują się przy użyciu haseł


32

Mam serwer Ubuntu Linux umożliwiający uwierzytelnianie hasła dla SSH i chcę go zmienić tylko na klucze SSH i wyłączyć logowanie hasłem.

Przed wyłączeniem logowania hasłem, jak mogę dowiedzieć się, którzy użytkownicy nadal używają haseł, a którzy przeszli na uwierzytelnianie za pomocą klucza?


Przy okazji, choć wiele osób tego nie wie, możesz również poprosić o hasło i hasło do serwera. Trochę bardziej uciążliwe, ale oczywiście bezpieczniejsze, jeśli to zrobisz ...
deviantfan

34
Wyłącz logowanie hasłem bez uprzedzenia i zobacz, ile osób krzyczy.
Mark


@deviantfan Bezpieczniej byłoby po prostu wymagać dłuższego pliku klucza , ale wymagałoby to nieco skryptu.
jpaugh

1
@deviantfan Rozumiem twój punkt widzenia. Ale zakładasz, że hasło do klucza prywatnego jest inne niż hasło do serwera; (podczas gdy
zakładam

Odpowiedzi:


48

Nie można tego zrobić w 100% niezawodnie, ale istnieją dwa mocne wskazania:

  • Po pierwsze, obecność .ssh/authorized_keyspliku jest wskazówką, że użytkownik jest przynajmniej przygotowany do korzystania z logowania na podstawie klucza
  • Po drugie, w pliku dziennika uwierzytelnienia ( /var/log/securew CentOS, /var/log/auth.logw Debian / Ubuntu) rejestrowana jest metoda auth:

    Sep 28 13:44:28 hostname sshd[12084]: Accepted publickey for sven
    

    vs

    Sep 28 13:47:36 hostname sshd[12698]: Accepted password for sven
    

    Zeskanuj dziennik w poszukiwaniu wpisów z wymienionym hasłem, aby dowiedzieć się, kto nadal używa haseł. Oczywiście nie będzie to działać z użytkownikami rzadko logującymi się, chyba że masz bardzo długie przechowywanie dziennika.


„skanuj” plik dziennika, zakładam, że masz na myśli sensowne opcje, takie jak używanie grep? grep 'password' /var/log/ssh/sshd.log
djsmiley2k - CoW

8
@ djsmiley2k: Dokładnie tak. Lub jakąkolwiek inną metodę preferowaną do tego zadania.
Sven

Czy pierwsza metoda nie jest udaremniona przez odpowiednie praktyki bezpieczeństwa, takie jak 700uprawnienia do .sshkatalogu użytkownika i squash root w zamontowanych katalogach domowych?
Ogre Psalm33

1
@ OgrePsalm33: Możesz przeprowadzić to wyszukiwanie na serwerze NFS ...
Sven

1
@R ..: NFSv4 i Kerberos można uzyskać względnie bezpieczne NFS (w takim przypadku logowanie na podstawie klucza staje się skomplikowane). Poza tym: Tak, logowanie oparte na kluczach działa bez żadnych problemów, gdy ~/.sshjest ustawione na 700katalogi główne NFS zgniecione w katalogu głównym, więc musi wyraźnie przełączać identyfikatory użytkowników przynajmniej dla odczytu opartego na kluczach authorized_keys.
Sven

19

Najszybszym sposobem jest wyłączenie go i sprawdzenie, kto puka do drzwi twojego biura; p


6
Nie jest to najszybszy sposób, ponieważ nie każdy użytkownik może logować się każdego dnia, podczas gdy dzienniki mogą wyraźnie pokazywać, kiedy ktoś się zaloguje, więc dają natychmiastowy rezultat
Ferrybig

3
To jest najwolniejszy sposób. Ludzie logują się na serwerze tylko wtedy, gdy ich aplikacja jest wyłączona. Może to potrwać lata.
Navin

@pete jesteś najlepszy :)
c4f4t0r
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.