Ist ein Computer, etwa ein Server, auch für andere zugänglich als nur die, die daran arbeiten, sollte man ihn nicht verlassen, solange man eingeloggt ist. Muss man es doch, lässt sich eine Bash-Sitzung in Linux bei Inaktivität nach gewisser Zeit auch automatisch abmelden.
Normalerweise bleibt die Bash-Konsole solange verfügbar, bis man sich manuell abmeldet. Auf Wunsch kann die Shell den aktuellen Benutzer nach einer bestimmten Zeit auch von selbst abmelden.
Die klassische TMOUT-Variable
Die bewährteste Methode funktioniert über die TMOUT-Variable in der Bash. Diese Einstellung wird für alle Benutzer angewendet, indem man folgende Zeile in eine neue Datei namens /etc/profile.d/bash_autologout.sh einfügt:
export TMOUT=600
Ab der nächsten Anmeldung greift automatisch ein Timer, der die Sitzung nach 10 Minuten (600 Sekunden) Inaktivität beendet.
Moderne Alternativen: systemd und SSH-Konfiguration
Seit Ubuntu 20.04 LTS und anderen modernen Distributionen gibt es zusätzliche Möglichkeiten, inaktive Sessions zu verwalten. Über systemd könnt ihr das Idle-Verhalten systemweit steuern:
sudo systemctl edit –full systemd-logind
In der Datei /etc/systemd/logind.conf setzt ihr:
UserStopDelaySec=600
KillUserProcesses=yes
Das beendet alle User-Prozesse nach 10 Minuten Inaktivität.
SSH-spezifische Timeouts
Für SSH-Verbindungen könnt ihr in /etc/ssh/sshd_config diese Parameter setzen:
ClientAliveInterval 300
ClientAliveCountMax 2
Das sendet alle 5 Minuten ein Keep-Alive-Signal und beendet die Verbindung nach zwei fehlgeschlagenen Versuchen (also nach 10 Minuten).
Benutzerspezifische Einstellungen
Wollt ihr das Timeout nur für bestimmte User aktivieren, tragt die TMOUT-Variable in deren ~/.bashrc oder ~/.profile ein:
export TMOUT=1800 # 30 Minuten
readonly TMOUT
Das readonly verhindert, dass User die Variable einfach überschreiben.
Erweiterte Sicherheit mit PAM
Für Hochsicherheitsumgebungen könnt ihr PAM (Pluggable Authentication Modules) nutzen. In /etc/pam.d/common-session fügt ihr hinzu:
session optional pam_lastlog.so
session required pam_limits.so
Anschließend definiert ihr in /etc/security/limits.conf:
* hard maxlogins 3
* soft cpu 600
Container und Cloud-Umgebungen
In Docker-Containern und Cloud-Instanzen (AWS EC2, Google Cloud, Azure) funktionieren die klassischen Methoden weiterhin. Bei Kubernetes-Pods solltet ihr jedoch auf die Pod-Security-Standards achten und Timeouts über die Container-Runtime definieren.
Für AWS Systems Manager Sessions könnt ihr in der Session-Konfiguration direkte Timeouts setzen:
„idleSessionTimeout“: „20“ # Minuten
Monitoring und Logging
Um zu überwachen, welche Sessions automatisch beendet werden, aktiviert ihr das Audit-Logging:
sudo auditctl -w /var/log/wtmp -p wa -k session_events
Die Logs findet ihr dann in /var/log/audit/audit.log.
Best Practices für verschiedene Umgebungen
Produktionsserver: 5-10 Minuten Timeout, kombiniert mit SSH-Key-Authentication
Entwicklungsumgebungen: 30-60 Minuten, abhängig vom Workflow
Jump-Hosts: 2-5 Minuten, da diese nur als Sprungbrett dienen
Database-Server: 3-5 Minuten mit zusätzlicher Connection-Pool-Überwachung
Troubleshooting häufiger Probleme
Falls der Timeout nicht greift, prüft zunächst, ob tmux oder screen läuft – diese Tools können das automatische Logout verhindern. Mit ps aux | grep -E ‚(tmux|screen)‘ findet ihr aktive Sessions.
Bei SSH-Verbindungen kann auch der Client-seitige ServerAliveInterval das Server-Timeout übersteuern. Prüft die lokale SSH-Config in ~/.ssh/config.
Fazit: Sicherheit durch Automation
Automatische Logouts sind ein einfacher aber effektiver Baustein der Server-Sicherheit. In Zeiten von Remote-Work und Multi-Cloud-Umgebungen solltet ihr diese Funktion standardmäßig aktivieren. Die Kombination aus TMOUT-Variable, SSH-Timeouts und systemd-Konfiguration bietet mehrschichtigen Schutz gegen vergessene Sessions.
Denkt daran: Ein kurzes Timeout nervt vielleicht anfangs, verhindert aber potentiell schwerwiegende Sicherheitslücken.
Zuletzt aktualisiert am 06.04.2026

