Funktionsweise und Login mit SSH

Inhaltsverzeichnis

SSH („Secure Shell“) ist das Standardprotokoll für den sicheren, verschlüsselten Fernzugriff auf Rechner und Server. Die Architektur basiert auf einem Client-Server-Modell: Der SSH-Server (üblicherweise sshd genannt) läuft auf dem Zielsystem und wartet auf Anfragen, während der Benutzer den SSH-Client nutzt, um eine Verbindung zum Server über den Standard-TCP-Port 22 herzustellen. Die Authentifizierung erfolgt entweder per Passwort oder Schlüsselpaare (Public-Key-Verfahren). Die komplette Verbindung ist verschlüsselt und schützt vor Man-in-the-Middle-Angriffen und Lauschen. Nach erfolgreicher Anmeldung startet der Server eine verschlüsselte Shell-Sitzung zur sicheren Ausführung von Befehlen.

SSH als systemd-Service

Das SSH-Subsystem wird meist von systemd verwaltet. Ob ssh läuft kann mit dem folgenden Befehl geprüft werden. Der Befehl zeigt den aktuellen Status des SSH-Servers, was zur Administration und Fehlerdiagnose genutzt werden kann.

systemctl status sshd

SSH und Firewall

In den meisten Linux-Systemen ist Port 22 per Voreinstellung für SSH in der Firewall freigegeben. Falls die Verbindung fehlschlägt, sollte geprüft werden, ob die Firewall den Zugang blockiert.

Root-Zugriffbashexit

Der direkte Login als Root ist in der Regel nicht erlaubt, um die Systemsicherheit zu verbessern. Vielmehr loggt sich der Benutzer mit einem Standardkonto ein und verwendet bei Bedarf sudo für administrative Aufgaben.

Ermitteln der IP-/Hostname für den Login

Um eine SSH-Verbindung aufzubauen, benötigt man entweder die IP-Adresse oder den Hostnamen des Zielsystems. Die wichtigsten Kommandos:

hostname     # Zeigt den Hostnamen an
hostname -i  # Zeigt die IP des Hostnamens
ip a         # Listet alle Netzwerkschnittstellen & IPs

Login mit IP/Hostname und Passwort

Klassischer SSH-Login ist schnell bereitgestellt. Es stehen folgende Befehlsvarianten zur Verfügung:

# Login mit aktuellem User und IP
ssh 192.168.178.71
# Login mit spezifischem User und IP
ssh username@192.168.178.71  
# Login mit dem Hostnamen
ssh hostname             
# User-/Hostnamen-Kombi
ssh username@hostname

# Remote-Befehl direkt ausführen
ssh username@hostname befehl -option argument   

Nach der Verbindung wird auf dem Server die jeweilige Shell gestartet. Zum Beenden der Sitzung genügt einfach:

exit

Passwortloser Login mit Schlüsselpaaren

Für automatisierte, komfortable und besonders sichere Zugänge empfiehlt sich die Authentifizierung per Schlüsselpaar. Dabei wird einmalig ein SSH-Key generiert (ssh-keygen) und der öffentliche Schlüssel auf dem Zielserver hinterlegt (z. B. in ~/.ssh/authorized_keys). Bei der Verbindungsaufnahme prüft der Server, ob der Client den passenden privaten Schlüssel besitzt. Ein Passwort muss dann nicht mehr eingegeben werden. Der private Schlüssel bleibt stets lokal gespeichert und sicher; zusätzlich kann er mit einer Passphrase geschützt werden. Häufig übernimmt ein „SSH-Agent“ die Verwaltung entschlüsselter Keys, sodass mehrere Logins bequem ohne wiederholte Passphrase-Eingabe möglich sind.

Für wen eignet sich SSH?

SSH ist ein essentielles Werkzeug für:

  • Systemadministratoren, DevOps und Entwickler.
  • Linux– und Unix-Nutzer, die Server remote verwalten.
  • Hosting-Kunden mit eigenem Webspace oder Serverzugang.
  • Automatisierung und sichere Dateiübertragung (scp, sftp).

SSH steht somit im Zentrum moderner Systemadministration und sollte von jedem Linux-Enthusiasten und Administrator intensiv beherrscht werden.

Andreas Moor
Andreas Moor
@blog@andreas-moor.de

Hallo Fediverse, ich bin Andy!

Hier und auf meiner Website findest du mein akkumuliertes Linux-Sysadmin-Wissen, meine kleinen und größeren Projekte und die Tools, die ich nutze.

Viel Spaß beim stöbern, lesen und lernen! 🧑‍💻

217 Beiträge
10 Folgende