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.