alexle135 Animiertes Logo
3 Min. Lesezeit

SSH-Keys einrichten – so hab ich's endlich verstanden

Ich hab mich ewig mit Passwörtern rumgeschlagen. Dann hab ich SSH-Keys eingerichtet. Hier ist, wie das geht.

SSH-Keys einrichten – so hab ich's endlich verstanden

Warum ich das brauchte

Ich hab jeden Tag mehrere Server per SSH angesteuert. Jedes Mal Passwort eintippen. Nervig.

Dann wollte ich ein Backup-Script automatisieren. Problem: Das Script kann kein Passwort eingeben.

Lösung: SSH-Keys.

Was du brauchst

  • Linux-Rechner (Ubuntu, Debian, WSL – egal)
  • Server mit SSH-Zugang
  • 10 Minuten

Schritt 1: Key erstellen

ssh-keygen -t ed25519 -C "dein@email.de"

Was passiert:

  • -t ed25519 – Moderner Algorithmus, schnell und sicher
  • -C – Ein Kommentar, damit du weißt welcher Key das ist

Du wirst nach einem Speicherort gefragt. Enter drücken für den Standard (~/.ssh/id_ed25519).

Dann kommt die Passphrase. Meine Empfehlung: Setz eine. Falls jemand an deinen Rechner kommt, ist der Key ohne Passphrase nutzlos.

Ergebnis: Zwei Dateien:

  • id_ed25519 – Privater Key (niemals teilen)
  • id_ed25519.pub – Öffentlicher Key (kommt auf den Server)

Schritt 2: Key auf Server kopieren

ssh-copy-id user@server-ip

Du wirst nach dem Passwort gefragt – zum letzten Mal.

Was das macht: Kopiert deinen Public Key in ~/.ssh/authorized_keys auf dem Server.

Fehler, den ich gemacht hab

Ich hab den Key manuell kopiert und die Berechtigungen vergessen. SSH hat sich geweigert zu verbinden.

Die Lösung:

chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh

SSH ist paranoid bei Berechtigungen. Wenn die Datei für andere lesbar ist, wird sie ignoriert.

Schritt 3: Testen

ssh user@server-ip

Wenn alles passt, bist du direkt drin. Keine Passwort-Abfrage mehr.

Bonus: SSH-Config

Statt ssh alex@192.168.1.100 jedes Mal zu tippen:

# ~/.ssh/config
Host homeserver
    HostName 192.168.1.100
    User alex
    IdentityFile ~/.ssh/id_ed25519

Host proxmox
    HostName 192.168.1.50
    User root

Jetzt reicht:

ssh homeserver
ssh proxmox

Das war ein Game-Changer für mich. Auch scp und rsync nutzen die Config automatisch.

Fehler, die mir passiert sind

”Permission denied (publickey)”

Der Key ist nicht auf dem Server oder die Berechtigungen stimmen nicht.

Check:

# Auf dem Server
ls -la ~/.ssh/

authorized_keys muss 600 sein, .ssh muss 700 sein.

Agent hat den Key nicht

Bei Keys mit Passphrase musst du den Key zum Agent hinzufügen:

eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519

Sonst fragt er bei jeder Verbindung nach der Passphrase.

Falscher Key

Wenn du mehrere Keys hast, nimmt SSH vielleicht den falschen.

Lösung: In der Config explizit angeben:

IdentityFile ~/.ssh/id_ed25519

Sicherheits-Tipps

Passphrase nutzen. Ein Key ohne Passphrase ist wie ein Haustürschlüssel ohne Schloss.

Passwort-Login deaktivieren. Wenn der Key funktioniert:

# /etc/ssh/sshd_config
PasswordAuthentication no

Dann sudo systemctl restart sshd.

Vorsicht: Teste vorher, ob der Key wirklich geht. Sonst sperrst du dich aus.

Fazit

SSH-Keys haben mir jeden Tag Zeit gespart. Kein Passwort-Tippen mehr, automatische Backups laufen, und sicherer ist es auch noch.

Einmal einrichten, dann vergessen.

Weiterlesen: Die 10 wichtigsten Linux-Befehle

Bei Fragen: schneider@alexle135.de

Das könnte dich auch interessieren

← Zurück zur Übersicht