SSH-Schlüssel auf einem Linux-System generieren und verwenden

Sicherheitsbewusste Administratoren und Entwickler verwenden SSH-Schlüssel (Public Key Authentication) anstelle von Passwörtern, um die Sicherheit von SSH-Verbindungen zu erhöhen. Hier ist ein Schritt-für-Schritt-Tutorial, wie Sie SSH-Schlüssel auf einem Linux-System generieren und verwenden können.

1. SSH-Schlüssel generieren

a. SSH-Schlüssel erstellen

Öffnen Sie ein Terminal und verwenden Sie das ssh-keygen-Tool, um ein neues Schlüsselpaar zu generieren.

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

Erklärung der Parameter:

  • -t rsa: Wählt den RSA-Algorithmus aus.
  • -b 4096: Setzt die Schlüssellänge auf 4096 Bits.
  • -C "your_email@example.com": Fügt einen Kommentar zum Schlüssel hinzu (z.B. Ihre E-Mail-Adresse).

b. Speicherort und Passphrase

Sie werden aufgefordert, den Speicherort des Schlüssels anzugeben. Drücken Sie einfach Enter, um den Standardpfad zu akzeptieren (/home/your_user/.ssh/id_rsa).

Enter file in which to save the key (/home/your_user/.ssh/id_rsa): [Press Enter]

Optional: Geben Sie eine sichere Passphrase ein oder lassen Sie das Feld leer, um keine Passphrase zu verwenden.

Enter passphrase (empty for no passphrase): [Type a passphrase]
Enter same passphrase again: [Type passphrase again]

2. Öffentlichen Schlüssel zum Remote-Server hinzufügen

a. Öffentlichen Schlüssel kopieren

Verwenden Sie das ssh-copy-id-Tool, um den öffentlichen Schlüssel zum Remote-Server zu kopieren. Ersetzen Sie user und remote_host durch den entsprechenden Benutzernamen und die IP-Adresse oder den Hostnamen Ihres Remote-Servers.

ssh-copy-id user@remote_host

Falls ssh-copy-id nicht verfügbar ist, können Sie den öffentlichen Schlüssel manuell kopieren.

cat ~/.ssh/id_rsa.pub

Kopieren Sie den ausgegebenen Schlüssel und fügen Sie ihn zur Datei ~/.ssh/authorized_keys auf dem Remote-Server hinzu.

ssh user@remote_host
mkdir -p ~/.ssh
echo "PASTE_PUBLIC_KEY_HERE" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh

3. SSH-Konfiguration anpassen

Um die Verwendung des neuen Schlüssels zu vereinfachen, können Sie die Datei ~/.ssh/config bearbeiten und Host-spezifische Einstellungen hinzufügen.

nano ~/.ssh/config

Fügen Sie die folgende Konfiguration hinzu:

Host remote_host
    HostName remote_host
    User user
    IdentityFile ~/.ssh/id_rsa

Ersetzen Sie remote_host, user und ~/.ssh/id_rsa durch Ihre spezifischen Informationen.

4. SSH-Verbindung testen

Stellen Sie eine Verbindung zum Remote-Server her, um sicherzustellen, dass alles korrekt konfiguriert ist.

ssh remote_host

Wenn Sie eine Passphrase verwendet haben, werden Sie aufgefordert, diese einzugeben.

5. Optional: Root-Anmeldung mit Passwort deaktivieren

Um die Sicherheit weiter zu erhöhen, können Sie die Root-Anmeldung mit Passwort deaktivieren. Bearbeiten Sie die Datei /etc/ssh/sshd_config auf dem Remote-Server.

sudo nano /etc/ssh/sshd_config

Ändern Sie die folgenden Parameter:

PermitRootLogin prohibit-password
PasswordAuthentication no

Starten Sie den SSH-Dienst neu, um die Änderungen zu übernehmen.

sudo systemctl restart ssh

Zusammenfassung

In diesem Tutorial haben Sie gelernt, wie Sie SSH-Schlüssel generieren, den öffentlichen Schlüssel auf einen Remote-Server kopieren und eine sichere SSH-Verbindung herstellen. Durch die Verwendung von SSH-Schlüsseln anstelle von Passwörtern erhöhen Sie die Sicherheit Ihrer SSH-Verbindungen erheblich.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert