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
LINUX SERVERHÄRTUNG UND SECURITY TESTING SEC-UX-01
Mehr erfahren