System-Benutzer mit SSH-Key und Sudo-Rechten einrichten

Johannes Przymusinski 25. Oktober 2025 4 Min. Lesezeit

Eine Anleitung, wie du auf Ubuntu einen dedizierten System-Benutzer anlegst, der sich nur per SSH-Schlüssel anmelden kann und optional Sudo-Rechte ohne Passwortabfrage erhält.


Wenn du auf einem Server Anwendungen betreiben oder automatisierte Prozesse laufen lassen willst, macht es Sinn, dafür einen eigenen Benutzer anzulegen. Idealerweise kann sich dieser Benutzer nur per SSH-Schlüssel anmelden und nicht mit einem Passwort – das erhöht die Sicherheit deutlich.

In dieser Anleitung zeige ich dir, wie du so einen Benutzer auf Ubuntu einrichtest.

1. Benutzer anlegen

Zuerst erstellen wir den neuen Benutzer. Ich nenne ihn hier app, du kannst aber natürlich einen anderen Namen wählen:

sudo adduser --disabled-password app

Der Parameter --disabled-password verhindert, dass sich der Benutzer mit einem Passwort anmelden kann. Ubuntu legt automatisch das Home-Verzeichnis /home/app an und fragt dich nach einigen optionalen Informationen (Name, Telefon etc.), die du einfach mit Enter überspringen kannst.

2. SSH-Zugang einrichten

Damit sich der Benutzer per SSH anmelden kann, braucht er ein .ssh-Verzeichnis mit den richtigen Berechtigungen:

sudo mkdir -p /home/app/.ssh
sudo chown app:app /home/app/.ssh
sudo chmod 700 /home/app/.ssh

Jetzt fügst du deinen öffentlichen SSH-Schlüssel hinzu:

echo "dein-öffentlicher-ssh-schlüssel" | sudo tee /home/app/.ssh/authorized_keys
sudo chown app:app /home/app/.ssh/authorized_keys
sudo chmod 600 /home/app/.ssh/authorized_keys

Wichtig: Verwende hier deinen öffentlichen Schlüssel (aus ~/.ssh/id_rsa.pub oder ~/.ssh/id_ed25519.pub), niemals den privaten!

3. Verbindung testen

Teste nun, ob die Anmeldung funktioniert:

ssh app@deine-server-ip

Wenn alles richtig konfiguriert ist, solltest du dich ohne Passwortabfrage anmelden können.

4. Sudo-Rechte vergeben

Falls der Benutzer administrative Aufgaben ausführen soll, kannst du ihm Sudo-Rechte geben. Hier gibt es zwei Varianten:

Variante A: Mit Passwortabfrage

Wenn der Benutzer bei jedem sudo-Befehl sein Passwort eingeben soll, musst du zuerst ein Passwort setzen:

sudo passwd app

Danach fügst du ihn zur Sudo-Gruppe hinzu:

sudo usermod -aG sudo app

Variante B: Ohne Passwortabfrage

Für automatisierte Prozesse oder wenn du keine Passwortabfrage möchtest, kannst du Sudo-Rechte ohne Passwort vergeben:

sudo visudo

Füge am Ende der Datei folgende Zeile hinzu:

app ALL=(ALL) NOPASSWD:ALL

Speichere mit Ctrl+X, dann Y und Enter.

Sicherheitshinweis: NOPASSWD:ALL gibt dem Benutzer uneingeschränkte Root-Rechte ohne jegliche Passwortabfrage. Verwende das nur, wenn du dir über die Sicherheitsimplikationen im Klaren bist. Für produktive Systeme solltest du entweder Variante A nutzen oder die Sudo-Rechte auf spezifische Befehle beschränken.

Fazit

Du hast jetzt einen Benutzer, der sich ausschließlich per SSH-Schlüssel anmelden kann und optional Sudo-Rechte besitzt. Das ist sicherer als die Nutzung des Root-Accounts und hilft dabei, verschiedene Prozesse auf dem Server sauber zu trennen.