Dies ist eine alte Version des Dokuments!
Secure Shell oder SSH bezeichnet ein kryptographisches Netzwerkprotokoll für den sicheren Betrieb von Netzwerkdiensten über ungesicherte Netzwerke. Häufig wird es verwendet, um lokal eine entfernte Kommandozeile verfügbar zu machen, das heißt, auf einer lokalen Konsole werden die Ausgaben der entfernten Konsole ausgegeben und die lokalen Tastatureingaben werden an den entfernten Rechner gesendet. Genutzt werden kann dies beispielsweise zur Fernwartung eines in einem entfernten Rechenzentrum stehenden Servers. Die neuere Protokoll-Version SSH-2 bietet weitere Funktionen wie Datenübertragung per SFTP. (aus Secure Shell)
Per Default wird nach dem Aufbau des ssh-Verbindung eine interaktive Login-Session für den entsprechenden User aufgebaut. In manchen Fallgestaltungen ist ein eingeschränkterer Zugriff gewünscht. Mittels Forced Commands können die verfügbaren Befehle durch Vorgaben in der ~/.ssh/authorized_keys
eingeschränkt werden.
Quellen zu Forced Commands:
Um die Angriffsfläche eines (ssh)-Servers zu verringern, kann man die folgenden beiden Maßnahmen ergreifen. Dies gilt insbesondere dann, wenn der Server aus dem Internet erreichbar ist.
Auf vielen Systmen ist root der einzige Account mit Remote-Zugriff und einem bekannten Benutzernamen. Damit ist er ein gutes Ziel für Brute-Force-Angriffe1). Wenn dieser Account gehackt wird, ist er aufgrund der umfassenden Benutzerrechte eine besonders lohnender Beute. Auf anderen Systemen ist der Account bereits „deaktiviert“.2)
Dort, wo der root-Account noch aktiv ist, sollte man für diese Benutzerkennung den Remote-Zugriff unterbinden.3) Die notwendigen administrativen Aufgaben können mit einem „normalen“ Account unter Verwendung von sudo
erledigt werden.4)
Um den ssh-Remote-Zugang für root zu sperren, setzt man in der Datei /etc/ssh/sshd_config
den Eintrag PermitRootLogin
auf no
PermitRootLogin no
Anschließend startet man den ssh-Daemon neu5) (oder rebootet ersatzweise den Rechner).
sudo
tatsächlich funktioniert.