Ich möchte eine Sicherheitsebene für die Anmeldung bei einem SSH-Server (Ubuntu) hinzufügen, indem ich eine Zwei-Faktor-Authentifizierung verwende. Eine Besonderheit bei der Art und Weise, wie sich die Benutzer mit dem SSH-Server verbinden, besteht darin, dass sie dies manchmal auf nicht-interaktive Weise tun: Der SSH-Server ist im MySQL-Client des Benutzers so konfiguriert, dass er als Bastion/Proxy zum Zugriff auf eine Datenbank verwendet wird. Aus diesem Grund suche ich nach 2FA-Setups, bei denen der Benutzer nichts in ein Terminal eingeben muss.
Eine bestehende Lösung, die in der Theorie vielversprechend klingt, ist Googles Telefonaufforderung, mit der der Benutzer die Verbindung validieren kann. Jeder SSH-Benutzer wäre mit einer Telefonnummer verknüpft und diese Telefonnummer würde bei jeder Verbindung eine Aufforderung zur Validierung erhalten.
Ein offensichtlicher Nachteil dieser Idee ist, dass es so klingt, als würde man dafür eine Telefon-App entwickeln müssen, was das Ganze viel zu kompliziert und teuer machen würde. Gibt es andere Techniken, mit denen ich Benutzern die Validierung nicht-interaktiver SSH-Anmeldungen ermöglichen könnte?
Antwort1
Sie können eine SSH-CA verwenden, um temporäre, kurzfristige OpenSSH-Benutzerzertifikate auszustellen, die nur einige Stunden gültig sind. Der Benutzer muss das Zertifikat anfordern, indem er sich mit einer beliebigen MFA-Lösung authentifiziert. Das SSH-Zertifikat und der private Schlüssel werden in den SSH-Schlüsselagenten geladen und können verwendet werden, bis das Benutzerzertifikat abläuft.
Es gibt verschiedene SSH-CA Implementierungen mit meinemEKCAeiner von ihnen sein. Ihre Ergebnisse können abweichen.