Help Center /Anleitungen /SSH-Key einrichten unter Windows, macOS und Linux

SSH-Key einrichten unter Windows, macOS und Linux

SSH-Schlüssel mit ssh-keygen erzeugen, auf den Server kopieren und den Passwort-Login sicher abschalten, für Windows, macOS und Linux.

Updated 23.10.2026

Mit einem SSH-Key meldest du dich ohne Passwort an deinem Server an. Das ist bequemer und deutlich sicherer, weil Angreifer kein Passwort mehr erraten können.

Der private Schlüssel bleibt auf dem Rechner, der öffentliche liegt auf dem Server in authorized_keys

1. Schlüsselpaar erzeugen

Unter Linux, macOS und Windows 10/11 (PowerShell) ist der Befehl gleich:

ssh-keygen -t ed25519 -C "mein-laptop"

Bestätige den Speicherort mit Enter und vergib eine Passphrase. Danach liegen zwei Dateien in deinem Benutzerordner unter .ssh:

  • id_ed25519: der private Schlüssel. Er verlässt deinen Rechner nie.
  • id_ed25519.pub: der öffentliche Schlüssel. Der kommt auf den Server.

2. Öffentlichen Schlüssel auf den Server kopieren

Unter Linux und macOS:

ssh-copy-id root@DEINE-IP

Unter Windows gibt es kein ssh-copy-id. Nimm diesen Befehl in der PowerShell:

type $env:USERPROFILE\.ssh\id_ed25519.pub | ssh root@DEINE-IP "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"

Teste danach den Login mit ssh root@DEINE-IP. Du wirst nur noch nach der Passphrase des Schlüssels gefragt, nicht nach dem Server-Passwort.

3. Passwort-Login abschalten

Achtung: Mach das erst, wenn der Login mit Schlüssel klappt. Sonst sperrst du dich aus.

Öffne /etc/ssh/sshd_config und setze

PasswordAuthentication no
PermitRootLogin prohibit-password

Dateien in /etc/ssh/sshd_config.d/ gehen vor, denn SSH nimmt bei den meisten Einstellungen den ersten Wert, den es findet. Steht dort zum Beispiel in 50-cloud-init.conf noch PasswordAuthentication yes, änderst du es auch dort. Was wirklich gilt, zeigt:

sshd -T | grep -Ei '^(passwordauthentication|permitrootlogin)'

Richtig ist passwordauthentication no und bei permitrootlogin der Wert prohibit-password oder dessen ältere Schreibweise without-password. Dann die Konfiguration prüfen und den Dienst neu starten:

sshd -t && systemctl restart ssh

Lass die bestehende Verbindung offen und teste in einem zweiten Fenster, ob der Login noch geht. Dass Passwörter wirklich abgelehnt werden, siehst du so. Die Antwort muss Permission denied (publickey) lauten:

ssh -o PubkeyAuthentication=no root@DEINE-IP

Falls du dich ausgesperrt hast, kommst du über die Konsole im XionHosting-Panel weiterhin auf den Server. Dort kannst du auch das Root-Passwort zurücksetzen.

Weiter geht es mit Linux-Server absichern.

Did this help?