root-Passwort zurücksetzen

Mittels dem Bootparameter init=/bin/bash lässt sich das root-Passwort zurücksetzen, falls dies vergessen wurde. Das funktioniert jedoch nur, wenn das System nicht verschlüsselt ist und der grub-Bootloader nicht abgesichert ist. Physischer Zugang ist ebenfalls Voraussetzung. Im Bootmenü muss «e» für edit gedrückt werden:

 

Hinweis
In diesem Modus ist die Tastatur auf das US-Keyboard eingestellt.
Wähle hier ein sehr einfaches Passwort wie passwd 123456 und ändere dies nach dem reboot ab. Damit verhinderst du Sonderzeichen, welche nach dem reboot auf anderen Tasten liegen.

Folgende Zeichen findest Du auf loadkeys de_CH-latin1 Tastatur.

- auf dem ?
/ auf dem -
_ auf SHIFT + ?
, auf dem ,
= auf dem ` (rechts vom ?)

In der gestarteten Bash kann nun das root-Passwort zurückgesetzt werden:

init=/bin/bash
# mount -o remount,rw /
# passwd
# mount -n -o remount,ro /
# reboot -f

Klartextpasswort verbieten

Nachdem ein ssh-key generiert wurde und die Anmeldung geklappt hat, können wir noch einen Schritt weitergehen und verbieten die Anmeldung mittels Passwort. Öffne die sshd-Konfigurationsdatei:

# nano /etc/ssh/sshd_config

und kommentiere die Passwort-Authentifizierung aus und setze den Wert auf Nein:

# To disable tunneled clear text passwords, change to no here!
PasswordAuthentication no
#PermitEmptyPasswords no

Vorsicht: Damit kannst Du dich vom gesamten System aussperren. Mache dies nur, wenn Du sicher bist, was du hier genau tust!

Hinweis

es kann vorkommen, dass dies nicht auf Anhin klappt. Dann beginnen wir mit der Fehlersuche:

# ls -la /etc/ssh/sshd_config.d/*.conf
# sshd -T | grep -iE 'KbdInteractiveAuthentication|password|usepam'

der erste Befehl kann u.a. ausgeben:

# ls -la /etc/ssh/sshd_config.d/*.conf
-rw------- 1 root root 27 13. Jun 09:58 /etc/ssh/sshd_config.d/50-cloud-init.conf

der zweite Befehl kann u.a. ausgeben:

# sshd -T | grep -iE 'KbdInteractiveAuthentication|password|usepam'
usepam yes
passwordauthentication yes
kbdinteractiveauthentication no
permitemptypasswords no

Bedeutet: /etc/ssh/sshd_config.d/50-cloud-init.conf übersteuert unseren Befehl in sshd_config. Ein:

nano /etc/ssh/sshd_config.d/50-cloud-init.conf

mit dem Eintrag:
PasswordAuthentication no
bringt hier Abhilfe.

sudo unter Debian

sudo ist per default in Debian nicht aktiviert. Versucht man einen root-Befehl mit sudo auszuführen, kommt es zu diesem typischem Vorfall:

$ sudo blkid

Wir gehen davon aus, dass der lokale Systemadministrator Ihnen die
Regeln erklärt hat.  Normalerweise läuft es auf drei Regeln hinaus:

    #1) Respektieren Sie die Privatsphäre anderer.
    #2) Denken Sie nach, bevor Sie tippen.
    #3) Mit großer Macht kommt große Verantwortung.

[sudo] Passwort für BENUTZER:
BENUTZER ist nicht in der sudoers-Datei. Dieser Vorfall wird gemeldet.

1. Installiere sudo

# apt install sudo

2. füge den Benutzer «BENUTZER» zur Gruppe sudo hinzu:

# adduser BENUTZER sudo

3. prüfe, ob BENUTZER sudo ausführen darf:

$ sudo -v

Falls: «Leider darf der Benutzer BENUTZER sudo für debian nicht verwenden.» erscheint, melde dich vom System ab und wieder an.

4. BENUTZER kann ab jetzt sudo anwenden:

$ sudo BEFEHL
[sudo] Passwort für BENUTZER:

Hinweis: Im Netz findet man unzählige Meinungen über Sinn und Unsinn von sudo unter Debian. Um es kurz zu machen: sudo macht tatsächlich keinen Sinn unter Debian. Es ist jedoch auch nicht verboten, es anzuwenden.