Edocti
Fortgeschrittene technische Ausbildung für den modernen Softwareingenieur

Improved SSH security

In diesem technischen Newsletter zeigen wir, wie Sie beim Zugriff auf entfernte Linux-Server (inkl. AWS EC2) ein höheres Sicherheitsniveau erreichen.

Nehmen wir an, Ihr Server heißt my_server.com und Ihr Benutzer my_username.

Wir zeigen zuerst die vier Schritte und beantworten anschließend die „Warum?“-Fragen.

  • Schritt 1: ECDSA-Schlüsselpaar erzeugen
    ssh-keygen -t ecdsa -b 521 -C "my_user@my_server.com"
    Als Pfad empfehlen wir ~/.ssh/id_ecdsa_my_server. Wählen Sie außerdem eine starke Passphrase.
  • Schritt 2: Private Key absichern
    chmod 400 ~/.ssh/id_ecdsa_my_server
    Unter Windows setzen Sie die Berechtigungen per Rechtsklick → Properties → Security (nur Read für Ihren User).
  • Schritt 3: Public Key auf den Server kopieren
    ssh-copy-id -i ~/.ssh/id_ecdsa_my_server.pub my_user@my_server.com
    Hinweis: Falls der SSH-Server auf einem anderen Port lauscht, ergänzen Sie -p $port_number.
  • Schritt 4: Key in ssh-agent laden
    Fügen Sie in ~/.bashrc oder ~/.profile ein:
    eval $(ssh-agent -s)
    ssh-add ~/.ssh/id_ecdsa_my_server
    Konsole neu starten oder source ~/.bashrc – Sie werden nach der Passphrase gefragt.

Das war’s!
ssh my_user@my_server.com — diesmal ohne Passwortabfrage.

Warum besser als Passwort-SSH?
Passwörter gehen über die Leitung; der Private Key verlässt Ihren Rechner nie. Außerdem können Sie den Private Key per Dateirechte schützen. Ein Keylogger reicht, um Passwort-SSH zu kompromittieren; beim Key-Pair braucht ein Angreifer Dateizugriff auf den Private Key und die Passphrase.

Warum ECDSA statt RSA?
ECDSA ist schwerer zu brute-forcen und deutlich kompakter (192-bit ECDSA ~ 1024-bit RSA). Die Ver-/Entschlüsselung dauert zwar etwas länger, in SSH-Sessions fällt das praktisch nicht auf.

Was passiert in Schritt 3?
Der Server soll my_user via Key authentifizieren. Dafür kopieren wir den Public Key nach ~my_user/.ssh/authorized_keysssh-copy-id erledigt genau das.

Unter Windows?
Empfehlenswert ist Git for Windows (BASH & util-linux Port) – kann PuTTY vollständig ersetzen.

Ist das die maximale Sicherheit?
Nicht ganz; es gibt weitere Härtungen – für diesen kurzen Newsletter belassen wir es dabei.


Feedback gern an research@edocti.com

Paul Ianas