Von Johannes Grießmeier auf Donnerstag, 13. Februar 2025
Kategorie: IT-Security

Doppelt hält besser: SSH 2FA mit Security Keys

Mit einem Security Key, kann die SSH-Verbindungen mit einem zweiten Faktor abgesichert werden, sodass ein physischer Kontakt benötigt wird und die Verbindung dadurch nicht von Schadsoftware angegriffen werden kann. 

Über 2FA

Wie wir bereits im Artikel "Zwei-Faktor-Authentifizierung für SSH-Logins mit dem Google Authenticator unter Linux" beschrieben haben, erhöht ein zweiter Faktor die Sicherheit bei der Authentifizierung. Mit einem Security Key kann man die SSH Key Pairs absichern, ohne zusätzliche Software auf dem Server installieren/konfigurieren zu müssen. Außerdem erhöht ein Security Key die Sicherheit weiter, da ein physischer Kontakt mit dem Key als zweiter Faktor dient.  

Voraussetzungen

​Neben der Open SSH Version >= 8.2 auf dem Server und dem Client wird noch ein Security Key wie z. B. SoloKeys Solo2, Yubikey 5 NFC, Feitian A4B benötigt. Wichtig hierbei ist, dass der Security Key das Protokoll U2F (Universal Second Factor) unterstützt.

Generierung des SSH Key Pairs

Damit SSH Keys mit einem Security Key gesichert werden können, muss ein neues Key Pair erzeugt werden. Dazu stehen die beiden neuen Typen "ecdsa-sk" und "ed25519-sk" zur Verfügung.

Das -sk steht für Security Key. Ich habe mich in diesem Beispiel für die ed25519-sk Variante entschieden. Der Unterschied zu den Schlüsseln ohne "-sk" liegt darin, dass die Schlüssel mit "-sk" durch den Security Key abgesichert werden.

Achtung: Verliert ihr euren Security Key, könnt ihr euch mit dem generierten Key Pair nicht mehr an dem Server anmelden.

Deswegen empfiehlt es sich noch ein zweites Key Pair mit einem zusätzlichen Security Key als Backup zu generieren. 

Mit dem Parameter -O verify-required stellen wir sicher, dass bei der Verwendung die PIN des Security Keys eingegeben werden muss.

Den generierten Public Key kann man mit ssh-copy-id auf den Zielserver kopieren. 

ssh-copy-id -i ~/.ssh/id_ed25519_sk jgr@ct-test

Jetzt können wir uns mit dem Testserver verbinden. Dabei wird die Passphrase für das Key Pair abgefragt. Anschließend wird die PIN für den Key abgefragt und wir müssen die Kontaktfläche am Security Key berühren. 

Anpassen der SSH Server Config

Serverseitig kann die SSH Config so angepasst werden, dass ausschließlich SSH Key Pairs genutzt werden können, die mit Security Keys gesichert sind.

Dazu müssen folgende Einträge in der sshd_config gesetzt werden. 

​Fazit

Mit einem U2F Security Key kann man SSH-Verbindungen einfach um einen zweiten Faktor erweitern und absichern ohne weitere PAM Module installieren zu müssen. Durch das notwendige Berühren des Security Keys, kann dieses Verfahren nicht aus der Ferne angegriffen werden, da ein physischer Zugriff notwendig ist. 

Seminarempfehlung

Kommentare hinterlassen