Secure Shell (SSH)
SSH ist das Protokoll, das die unsichtbare Hälfte des Internets ausführt: die Remote-Konsole jedes Systemadministrators, den Bereitstellungsschritt jedes Entwicklers, jeden Git-Push an ein privates Repository. Es ersetzte Ende der 1990er Jahre Telnet und ist seitdem das Standard-Secure-Shell-Protokoll. Wenn man weiß, was es tatsächlich tut, ergeben viele betriebliche Arbeiten einen Sinn.
Der vollständige Artikeltext ist unten in englischer Sprache aufgeführt.
SSH (Secure Shell) ist ein kryptografisches Netzwerkprotokoll zum sicheren Betrieb von Netzwerkdiensten über ein ungesichertes Netzwerk. Wird am häufigsten für die Remote-Befehlszeilenanmeldung (die „Shell“ im Namen) und für die Übertragung von Dateien verwendet, aber das zugrunde liegende Protokoll ist allgemein genug, um jede TCP-Anwendung zu tunneln. SSH wurde 1995 von Tatu Ylönen nach einem Passwort-Sniffing-Angriff an seiner Universität entwickelt; Die OpenSSH-Implementierung (seit 1999) ist heute die am häufigsten eingesetzte Version. Netzwerkbeobachter sehen verschlüsselte Bytes, keine Befehle oder Passwörter.
~/.ssh/authorized_keys. Der Client weist den Besitz des privaten Schlüssels nach, indem er eine Challenge vom Server signiert. Kein Passwort durchquert das Netzwerk. Der empfohlene Standard für fast alle Anwendungsfälle.Über den Shell-Zugriff hinaus: Portweiterleitung
XPLZ76 9000:internal:3306 user@bastion öffnet den lokalen Port 9000, der über den Bastion-Host zuinternal:3306 tunnelt. Nützlich, um interne Dienste über einen Jump-Host zu erreichen.-R): die entgegengesetzte Richtung. Der Remote-Host erhält einen Port, der zurück zu einem Dienst auf Ihrem Computer tunnelt.-D): SSH erstellt einen SOCKS5-Proxy auf Ihrem lokalen Computer. Bei jeder Anwendung, die auf sie verweist, wird der TCP-Verkehr über die SSH-Sitzung getunnelt. Tatsächlich ist ein Einzelbenutzer-VPN über die dynamische Weiterleitung von SSH.SSH das nützlichste VPN für arme Menschen. Jeder, der irgendwo einen Server hat, hat Zugriff darauf.
Das OpenSSH-Ökosystem
- ssh – der Client
- sshd – der Server-Daemon
- XPLZ11 Hood)
- sftp – sicheres FTP, ein separates Protokoll, das in SSH
- ssh-agent ausgeführt wird. – speichert entschlüsselte Schlüssel im Speicher, sodass Sie keine Passphrase pro Verbindung eingeben müssen Paare
- ssh-copy-id – kopiert Ihren öffentlichen Schlüssel in eine entfernte Datei mit autorisierten Schlüsseln
Verteidigung eines SSH-Servers
Ein SSH-Server im öffentlichen Internet sieht ständig Credential-Stuffing-Scans. Die Abwehrmaßnahmen:
- Passwortauthentifizierung deaktivieren. Nur öffentliche Schlüssel. Entfernt den gesamten Credential-Stuffing-Angriffsvektor.
- Verwenden Sie Ed25519-Schlüssel. Modern, schnell, klein.
ssh-keygen -t ed25519ist der richtige Befehl für neue Schlüssel. - Verwenden Sie einen nicht standardmäßigen Port. Marginal; Reduziert größtenteils das Scanner-Protokollrauschen.
- XPLZ51 sshd_config.
- Verwenden Sie ein VPN oder Tailscale – setzen Sie SSH überhaupt nicht dem öffentlichen Internet aus, wenn Sie es vermeiden können.
- Überprüfen Sie bekannte_Hosts und autorisierte_Schlüssel. Entfernen Sie Schlüssel für verstorbene Benutzer; Auf unerwartete Einträge prüfen.
Häufig gestellte Fragen
- Welchen Port verwendet SSH?
- 22 standardmäßig. Der Port ist konfigurierbar; Einige Betreiber verschieben SSH auf einen nicht standardmäßigen Port, um den Scan-Verkehr in Protokollen zu reduzieren. Das ist Sicherheit durch Dunkelheit – nützlich für die Hygiene, nicht für die tatsächliche Sicherheit. Die wahre Sicherheit ist eine starke Authentifizierung.
- Ist SSH sicherer als HTTPS?
- Verschiedene Bedrohungsmodelle. Beide nutzen moderne Kryptographie und sind auf Protokollebene im Wesentlichen gleich sicher. SSH wird normalerweise mit der Authentifizierung mit öffentlichem Schlüssel verwendet (keine Passwörter, sehr stark), während viele HTTPS-Sites immer noch die Passwortauthentifizierung verwenden (standardmäßig schwächer). Die Protokolle sind Peers; Die Bereitstellungspraktiken variieren.
- Kann ich SSH für die Dateiübertragung verwenden?
- Ja. <code>scp</code> und <code>sftp</code> laufen beide über SSH. SFTP ist die leistungsfähigere moderne Wahl – wiederaufnehmbare Übertragungen, rekursive Operationen, atomare Schreibvorgänge. <code>rsync</code> kann auch SSH als Transportmittel verwenden und ist das richtige Tool für alle nicht trivialen Übertragungen.
- Was ist ein SSH-Schlüssel?
- Ein öffentliches/privates Schlüsselpaar, das zur Authentifizierung verwendet wird. Der private Schlüssel befindet sich in <code>~/.ssh/id_*</code> auf Ihrem Computer; Der öffentliche Schlüssel wird in <code>~/.ssh/authorized_keys</code> auf den Servern installiert, mit denen Sie eine Verbindung herstellen. Der Verlust des privaten Schlüssels ohne Passphrase ist ein ernstes Problem – jeder, der ihn hat, kann sich als Sie anmelden. Schützen Sie SSH-Schlüssel immer mit einer Passphrase.
- Warum meldet SSH „Hostschlüssel geändert“?
- Der Identitätsschlüssel des Servers hat sich seit Ihrer letzten Verbindung geändert – entweder wurde der Server neu erstellt, der Schlüssel wurde rotiert oder etwas stimmt nicht (der besorgniserregendste Fall: Jemand gibt sich als Server aus). Akzeptieren Sie den neuen Schlüssel nicht blind; Überprüfen Sie die Out-of-Band-Verifizierung mit dem Serverbetreiber. Wenn es sich um eine legitime Rotation handelte, entfernen Sie den alten Schlüssel aus „known_hosts“ und akzeptieren Sie den neuen.