SSH - Identifizieren Sie, welche Benutzer sich noch mit Kennwörtern anmelden

32

Ich habe einen Ubuntu Linux-Server, der die Kennwortauthentifizierung für SSH zulässt, und ich möchte ihn nur auf SSH-Schlüssel umstellen und die Kennwortanmeldung deaktivieren.

Wie kann ich herausfinden, welche Benutzer noch Passwörter verwenden und welche auf Schlüsselauthentifizierung umgestellt haben, bevor ich die Passwortanmeldung deaktiviere?

PeterB
quelle
Übrigens, während viele Leute das nicht wissen, können Sie auch nach dem Schlüssel und dem serverseitigen Passwort fragen . Ein bisschen lästiger, aber natürlich auch sicherer, wenn Sie das tun ...
deviantfan
34
Deaktivieren Sie die Passwortanmeldung ohne Vorankündigung und sehen Sie, wie viele Leute schreien.
Mark
@deviantfan Es wäre sicherer, einfach eine längere Schlüsseldatei zu benötigen , aber das würde ein bisschen Scripting erfordern.
Jpaugh
1
@ Deviantfan Ich nehme Ihren Punkt. Sie gehen jedoch davon aus, dass sich das Kennwort für den privaten Schlüssel vom Kennwort für den Server unterscheidet. (während ich die private Schlüsseldatei unter der Annahme hat ein Passwort, ich weiß.)
jpaugh

Antworten:

48

Sie können das nicht 100% zuverlässig tun, aber es gibt zwei starke Anzeichen:

  • Erstens ist das Vorhandensein einer .ssh/authorized_keysDatei ein Hinweis darauf, dass der Benutzer zumindest bereit ist, die schlüsselbasierte Anmeldung zu verwenden
  • Zweitens wird in der Authentifizierungsprotokolldatei ( /var/log/secureunter CentOS, /var/log/auth.logDebian / Ubuntu) die Authentifizierungsmethode protokolliert:

    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
    

    Durchsuchen Sie das Protokoll nach Einträgen mit dem angegebenen Kennwort, um festzustellen, wer noch Kennwörter verwendet. Dies funktioniert natürlich nicht mit Benutzern, die sich selten anmelden, es sei denn, Sie verfügen über eine sehr lange Protokollaufbewahrung.

Sven
quelle
mit 'scannen' der logdatei meine ich wohl sinnvolle möglichkeiten wie grep? grep 'password' /var/log/ssh/sshd.log
djsmiley2k - CoW
8
@ djsmiley2k: Ja genau. Oder welche andere Methode Sie für diese Aufgabe bevorzugen.
Sven
Wird die erste Methode nicht durch geeignete Sicherheitsmaßnahmen wie 700Berechtigungen für das Benutzerverzeichnis .sshund Root-Squash für gemountete Home-Verzeichnisse vereitelt ?
Ogre Psalm33
1
@ OgrePsalm33: Sie können diese Suche auf dem NFS- Server durchführen ...
Sven
1
@R ..: Mit NFSv4 und Kerberos können Sie NFS relativ sicher machen (in diesem Fall wird die schlüsselbasierte Anmeldung kompliziert). Davon abgesehen: Ja, die schlüsselbasierte Anmeldung funktioniert problemlos, wenn sie ~/.sshauf 700und in Root-Squashed-NFS-Basisverzeichnissen festgelegt ist, sodass die Benutzer-IDs eindeutig geändert werden müssen, damit die schlüsselbasierte Authentifizierung gelesen werden kann authorized_keys.
Sven
19

Am schnellsten können Sie es deaktivieren und sehen, wer an Ihrer Bürotür klopft

Peter
quelle
6
Dies ist nicht der schnellste Weg, da sich möglicherweise nicht jeder Benutzer jeden Tag anmeldet. Die Protokolle zeigen jedoch deutlich, wann sich jemand angemeldet hat, sodass ein sofortiges Ergebnis
erzielt wird
3
Dies ist der langsamste Weg. Die Benutzer melden sich nur dann beim Server an, wenn ihre Anwendung nicht verfügbar ist. Es könnte Jahre dauern, bis das passiert.
Navin
@ Pete du bist der Top :)
c4f4t0r