Wo werden SSH-Schlüssel in Linux gespeichert – und wie verwaltet man sie sicher?
SSH (Secure Shell) ist ein grundlegendes Werkzeug im Linux-Ökosystem, das für den Remote-Zugriff, sichere Dateiübertragungen, Automatisierung und Serververwaltung verwendet wird. Während die meisten Benutzer über den Befehl ssh mit SSH interagieren, basiert SSH im Hintergrund SSH auf öffentlichen und privaten Schlüsselpaaren zur Authentifizierung – insbesondere in Umgebungen, in denen passwortlose Anmeldungen, Automatisierung und DevOps-Praktiken unerlässlich sind.
Standard-Speicherort für SSH-Schlüssel
Der häufigste Ort, an dem SSH-Schlüssel gespeichert werden, ist:
Dies bezieht sich auf das .ssh-Verzeichnis im Home-Ordner des Benutzers, z.B.:
Häufige Dateien in diesem Verzeichnis:
| Datei | Zweck |
|---|---|
| id_rsa | Standard-privater Schlüssel (RSA) |
| id_rsa.pub | Passender öffentlicher Schlüssel |
| id_ecdsa, id_ed25519 | Andere private Schlüssel (ECDSA, Ed25519) |
| id_*.pub | Entsprechende öffentliche Schlüssel |
| authorized_keys | Speichert öffentliche Schlüssel die zum Verbinden erlaubt sind |
| known_hosts | Speichert Server-Fingerabdrücke (Host-Schlüsselverifizierung) |
| config | Benutzerspezifische SSH-Client-Konfiguration |
Wenn Sie Schlüssel mit ssh-keygen generieren, werden sie standardmäßig hier gespeichert, es sei denn, ein Pfad wird angegeben.
Systemweite SSH-Schlüsselstandorte
SSH-Server (sshd) Host-Schlüssel
Systemweite Schlüssel, die vom SSH-Daemon (Server-Seite) verwendet werden:
Typische Dateien:
| Datei | Zweck |
|---|---|
| ssh_host_rsa_key | Host-privater Schlüssel (RSA) |
| ssh_host_rsa_key.pub | Host-öffentlicher Schlüssel |
| ssh_host_ecdsa_key | ECDSA-Host-privater Schlüssel |
| ssh_host_ed25519_key | Ed25519-Host-privater Schlüssel |
Diese Schlüssel werden verwendet, um den Server gegenüber Clients zu identifizieren, nicht um Benutzer zu authentifizieren.
Der SSH-Daemon (sshd) präsentiert den Host-öffentlichen Schlüssel während der Verbindung; Clients vergleichen ihn mit ~/.ssh/known_hosts.
Benutzerdefinierte Schlüsselstandorte
Sie können SSH-Schlüssel von jedem Standort generieren oder verwenden, aber Sie müssen den Pfad angeben:
Sie können auch mehrere Schlüssel über ~/.ssh/config konfigurieren:
Wo werden Schlüssel verwendet?
Ausgehend (Client-Seite)
SSH-Clients suchen standardmäßig nach privaten Schlüsseln in ~/.ssh/. Sie werden verwendet, um die Authentifizierung beim Verbinden mit einem Remote-Server zu initiieren.
ssh, scp, rsync über SSH, git (bei Verwendung von SSH-Remote)
📌 Eingehend (Server-Seite)
Der Server sucht nach öffentlichen Schlüsseln in:
Diese Datei listet auf, welche öffentlichen Schlüssel zum Anmelden erlaubt sind für dieses spezifische Benutzerkonto.
Wenn user_a versucht, sich als user_b über SSH mit einem Server zu verbinden, muss ihr öffentlicher Schlüssel in ~user_b/.ssh/authorized_keys vorhanden sein.
Berechtigungen – Kritisch für die Sicherheit
Korrekte Berechtigungen:
Falsche Berechtigungen können dazu führen, dass SSH Ihre Schlüssel ignoriert oder Anmeldungen vollständig ablehnt.
SSH-Schlüssel sicher verwalten
Verwenden Sie eine Passphrase beim Generieren privater Schlüssel:
Verwenden Sie ssh-agent, um entsperrte Schlüssel im Speicher zu cachen:
- Rotieren Sie Schlüssel regelmäßig
- Entfernen Sie ungenutzte oder verwaiste Schlüssel aus “authorized_keys”
- Verwenden Sie separate Schlüssel pro Host/Projekt
- Vermeiden Sie die Verwendung von Root-Schlüsseln in verschiedenen Umgebungen
Überprüfung und Debugging
Um zu sehen, welcher Schlüssel während der SSH-Verbindung verwendet wird:
Dies druckt ausführliche Protokolle aus, einschließlich welcher Identitätsdatei versucht wurde.
Um die geladenen Schlüssel in Ihrem aktuellen Agenten aufzulisten:
Um einen Schlüssel zu entfernen:
Fazit
Zu verstehen, wo SSH-Schlüssel in Linux gespeichert sind – und wie man sie sicher verwaltet – ist entscheidend für Systemadministratoren, Entwickler, DevOps-Ingenieure und alle, die in Multi-Host- oder Multi-User-Umgebungen arbeiten.
Indem Sie den Unterschied zwischen Benutzer-Schlüsseln, Host-Schlüsseln und autorisierten Schlüsseln kennen, können Sie:
- Authentifizierungsprobleme beheben
- Sichere automatisierte Workflows einrichten
- Zugriff über Teams und Systeme verwalten
In Produktionssystemen oder Cloud-Plattformen (z.B. VPS oder dedizierte Server) kann eine falsche Verwaltung von SSH-Schlüsseln zu schwerwiegenden Sicherheitsanfälligkeiten führen. Stellen Sie sicher, dass Sie bewährte Praktiken befolgen und den Zugriff regelmäßig überprüfen.
