Was auch immer Sie tun, belassen Sie das Konto nicht in dem Zustand passwd -u
, in dem es hinterlassen wurde , und geben Sie kein leeres Kennwort ein: Dies ermöglicht Anmeldungen ohne Eingabe eines Kennworts (außer über SSH, da SSH dies ablehnt).
Ändern Sie das Konto, um kein Kennwort zu haben, aber entsperrt zu werden. Ein Konto hat kein Kennwort, wenn der Kennwort-Hash in der Kennwortdatenbank kein Hash einer Zeichenfolge ist. Traditionell wird dafür eine einstellige Zeichenfolge wie *
oder !
verwendet.
Gesperrte Konten verwenden außerdem eine spezielle Markierung im Kennwortfeld, die dazu führt, dass die Zeichenfolge kein Hash einer Zeichenfolge ist. Der Marker ist systemabhängig. Unter Linux passwd
markiert der Befehl gesperrte Kennwörter durch Setzen eines !
am Anfang, und OpenSSH behandelt das Konto als gesperrt, wenn das Feld mit beginnt !
. Andere Unix-Varianten verwenden in der Regel ähnliche, aber nicht identische Mechanismen. Seien Sie also vorsichtig, wenn Ihre Kennwortdatenbank von einem heterogenen Netzwerk gemeinsam genutzt wird.
Unter Linux können Sie den kennwortbasierten Zugriff auf ein Konto deaktivieren, während Sie den SSH-Zugriff (mit einer anderen Authentifizierungsmethode, normalerweise einem Schlüsselpaar) mit zulassen
usermod -p '*' username
Der Benutzer kann das Konto nicht wieder in ein Kennwort ändern, da er dazu ein gültiges Kennwort eingeben muss.
Wenn Sie möchten, können Sie stattdessen SSH so konfigurieren, dass die Kennwortauthentifizierung verweigert wird, unabhängig davon, ob das Konto ein Kennwort hat. Sie müssen immer noch dafür sorgen, dass SSH das Konto nicht als gesperrt betrachtet. Unter Linux müssen Sie beispielsweise !
das Feld aus dem Kennwort entfernen (aber das Feld nicht leer lassen - stellen Sie es *
wie oben beschrieben ein ). Fügen Sie zum Deaktivieren der Kennwortauthentifizierung für SSH eine PasswordAuthentication
Direktive zu /etc/sshd_config
oder hinzu /etc/ssh/sshd_config
(je nachdem, was sich auf Ihrem System befindet). Verwenden Sie einen Match
Block, damit diese Anweisung nur für einen bestimmten Benutzer gilt. Match
Blöcke müssen erscheinen
…
Match User username
PasswordAuthentication no