# SSH-Schlüssel statt Passwörtern nutzen

SSH-Schlüssel statt Passwörtern nutzen – Server-Administration und Linux-Wissen von NexoraHost.

Diese Anleitung zeigt dir, warum SSH-Schlüssel sicherer und bequemer als Passwörter sind und wie du sie einrichtest. Mit einem SSH-Key meldest du dich ohne Passwort an und schützt deinen Server gleichzeitig vor Brute-Force-Angriffen.

**Hinweis:** Die vollständige Anleitung zur SSH-Verbindung findest du im Artikel "SSH-Verbindung und Key-Authentifizierung" in der linken Navigation.

## Warum SSH-Schlüssel?

    
        
        Passwort
        SSH-Schlüssel
    

    
        **Sicherheit**
        Kann erraten oder gestohlen werden
        Praktisch nicht zu knacken (2^256 Möglichkeiten)
    

    
        **Brute-Force-Schutz**
        Angreifer können unbegrenzt versuchen
        Ohne privaten Schlüssel kein Zugriff möglich
    

    
        **Bequemlichkeit**
        Jedes Mal Passwort eintippen
        Einmal einrichten, nie wieder Passwort
    

    
        **Automatisierung**
        Passwort im Skript = Sicherheitsrisiko
        Perfekt für Scripts und Cronjobs
    

## Schritt 1: Schlüsselpaar erstellen

Führe diesen Befehl auf **deinem lokalen Computer** aus – nicht auf dem Server:

`ssh-keygen -t ed25519 -C "deine-email@beispiel.de"`

Du wirst nacheinander gefragt:

    - **Speicherort:** Enter drücken für den Standard-Pfad (`~/.ssh/id_ed25519`)
- **Passphrase:** Ein zusätzliches Passwort für den Schlüssel (optional, aber empfohlen)
- **Passphrase wiederholen:** Das gleiche Passwort nochmal eingeben

Nach der Erstellung hast du zwei Dateien:

    - **id_ed25519** – Dein privater Schlüssel (geheim, niemals weitergeben!)
- **id_ed25519.pub** – Dein öffentlicher Schlüssel (kommt auf den Server)

## Schritt 2: Öffentlichen Schlüssel auf den Server kopieren

### Methode A: Mit ssh-copy-id (empfohlen)

`ssh-copy-id root@deine-server-ip`
Gib einmal dein Server-Passwort ein. Der Schlüssel wird automatisch übertragen.

### Methode B: Manuell kopieren

`# Auf deinem lokalen PC: Öffentlichen Schlüssel anzeigen
cat ~/.ssh/id_ed25519.pub

# Auf dem Server: Schlüssel in authorized_keys einfügen
ssh root@deine-server-ip
mkdir -p ~/.ssh
echo "hier-deinen-kopierten-schlüssel-einfügen" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
exit`

## Schritt 3: Schlüssel-Login testen

`ssh root@deine-server-ip`
Wenn du eine Passphrase vergeben hast, wirst du danach gefragt. Sonst bist du sofort eingeloggt – ohne Passwort.

## Schritt 4: Passwort-Login deaktivieren (empfohlen)

Sobald der Schlüssel-Login funktioniert, solltest du den Passwort-Login deaktivieren:

`sudo nano /etc/ssh/sshd_config`
Finde und ändere folgende Zeilen:

`PasswordAuthentication no
ChallengeResponseAuthentication no
UsePAM no`
SSH-Dienst neustarten:

`sudo systemctl restart sshd`

**Wichtig:** Teste den Schlüssel-Login vorher in einem zweiten Terminal-Fenster. Wenn der Schlüssel nicht funktioniert und Passwort-Login deaktiviert ist, kommst du nicht mehr auf den Server.

## SSH-Schlüssel unter Windows mit PuTTY

    - Öffne **PuTTYgen**
- Wähle **Ed25519** als Schlüssel-Typ und klicke auf **Generate**
- Bewege die Maus über die leere Fläche um Zufallsdaten zu erzeugen
- Speichere den privaten Schlüssel (`.ppk`-Datei) und kopiere den öffentlichen Schlüssel
- Füge den öffentlichen Schlüssel auf dem Server in `~/.ssh/authorized_keys` ein
- In PuTTY unter **Connection → SSH → Auth** den privaten Schlüssel auswählen

## SSH-Konfigurationsdatei für mehrere Server

Erstelle `~/.ssh/config` auf deinem lokalen Rechner:

`Host mein-server
    HostName 123.123.123.123
    User root
    IdentityFile ~/.ssh/id_ed25519

Host gameserver
    HostName 456.456.456.456
    User steam
    IdentityFile ~/.ssh/id_ed25519`
Dann reicht `ssh mein-server` zum Verbinden – ohne IP und Benutzername.

## Häufige Probleme

**"Permission denied (publickey)":**

    - Wurde der öffentliche Schlüssel korrekt in `authorized_keys` eingefügt?
- Sind die Rechte korrekt? `chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys`
- Befindet sich der private Schlüssel auf deinem lokalen Rechner im `~/.ssh/`-Ordner?

**"Too many authentication failures":**

    - Zu viele Schlüssel im `~/.ssh/`-Ordner. Verbinde mit einem bestimmten Schlüssel:
        `ssh -i ~/.ssh/id_ed25519 root@server-ip`
    

*Die vollständige Anleitung zur SSH-Verbindung mit weiteren Details findest du im Artikel "SSH-Verbindung und Key-Authentifizierung" in der linken Navigation.*
