Skip to content

SSH

Privater und öffentlicher Schlüssel

Für die sichere Verbindung über SSH wird ein privater und ein öffentlicher Schlüssel benötigt. Nachfolgend sind die verschiedenen Schlüssel-Algorithmen erklärt.

RSA

Beim RSA Standard kann die Schlüsselstärke variabel angegeben werden. Aktuell sollten mindestens 2048 Bits, besser jedoch 4096, verwendet werden. RSA gilt, bei entsprechend hoher Bitrate, als sicher, benötigt jedoch im Vergleich gegenüber ECDSA und ED25519 mehr Ressourcen und Zeit, was bei leistungsarmen Geräten, bspw. im IoT Bereich, ein Nachteil ist.

1
ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa

ECDSA

Mögliche Werte für die Schlüsselstärke sind 256, 384 und 521 Bits.

1
ssh-keygen -t ecdsa -b 521 -f ~/.ssh/id_ecdsa

ED25519

1
ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519

Falls der Parameter -f nicht angegeben wurde, wird anschließend nach dem Speicherort gefragt.

Schlüssel für andere Benutzer werden am besten direkt als diese erstellt. Dies hat den Effekt, dass direkt die korrekten Rechte gesetzt werden, sowie die Schlüssel im richtigen Verzeichnis abgelegt werden.

Der Nutzer kann mit folgendem Befehl gewechselt werden.

1
su - [Benutzer]

Passphrase

Es wird nach einer Passphrase gefragt, also ein Passwort, dass bei der Verbindung des privaten Schlüssels eingegeben werden muss. Dies erhöht die Sicherheit noch ein mal. Alternativ kann die Passphase leer gelassen werden, wodurch der Schlüssel ohne Eingabe verwendet werden kann, was bspw. bei automatisierten Prozessen sinnvoll sein kann.

Autorisierte Schlüssel

Damit der Server die Verbindung durch den privaten Schlüssel zulässt, muss zunächst der öffentliche im Server hinterlegt werden. Dies geschieht über folgenden Befehl am Beispiel eines RSA-Schlüssels.

RSA

1
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

ECDSA

1
cat ~/.ssh/ecdsa.pub >> ~/.ssh/authorized_keys

Ed25519

1
cat ~/.ssh/ed25519.pub >> ~/.ssh/authorized_keys

Putty

Für die Verwendung des privaten Schlüssels mit Putty muss dieser zunächst umgewandelt werden. Dazu wird PuttyGen benötigt. Zuerst muss der Schlüssel in PuttyGen geladen werden. Wurde bei der Generierung eine Passphrase angegeben, muss diese zuvor eingegeben werden. Danach kann der private Schlüssel im Putty-Format abgespeichert werden.

Server-Konfiguration

Um die Server-Konfiguration anzupassen wird am besten eine eigene Konfiguration unter /etc/ssh/sshd_config.d/ angelegt.

Port ändern

1
Port [Port-Nummer]

Root-Zugriff

Je nach Anwendungsfall kann der root Zugriff erlaubt werden.

1
PermitRootLogin [yes|no]

Passwort-Authentifizierung

Die Passwort-Authentifizierung sollte möglichst deaktiviert werden.

1
PasswordAuthentication [yes|no]

MotD

Message of the day - Wird beim Login angezeigt.

1
PrintMotd [yes|no]

Letzte Anmeldung

1
PrintLastLog [yes|no]

Eigenes Banner

Wird bei jeder Anmeldung (vor Passworteingabe) angezeigt.

1
Banner /etc/ssh/sshd_banner

Beispielsweise kann folgender Text in die Datei /etc/ssh/sshd_banner einfügt werden.

1
2
Unauthorized access to this system is forbidden and will be prosecuted by law.
By accessing this system, you agree that your actions will be monitored, if unauthorized usage is suspected.

Debian Banner

1
DebianBanner [yes|no]

Host Keys

Um die Sicherheit weiter zu erhöhen, können die Host Keys ausgetauscht werden. Zuerst werden alle alten Host Keys entfernt.

RSA

Schlüsselstärke auf 8192 Bits anheben.

1
ssh-keygen -t rsa -b 8192 -f /etc/ssh/ssh_host_rsa_key -N ""

ECDSA

Schlüsselstärke auf 521 Bits anheben.

1
ssh-keygen -t ecdsa -b 521 -f /etc/ssh/ssh_host_ecdsa_key -N ""

ED25519

1
ssh-keygen -t ed25519 -f /etc/ssh/ssh_host_ed25519_key -N ""

Der Parameter -N steht für die Passphrase, welche somit nicht gesetzt wird.

Im Anschluss muss der SSH Server neu gestartet werden.

1
service ssh restart