Hallo zusammen,
um den Zugriff auf meinen Server möglichst sicher zu gestalten, habe ich versucht, mehrere Sicherheitshürden zu implementieren.
Zum einen habe ich versucht, den Login nur mittels Publickey zu realisieren. Dieser Versuch hat allerdings noch nicht vollständig geklappt, da ich von einem Windows 11 System zugreifen möchte. Über den OpenSSH-Client in der CMD bekomme ich immer einen Fehler, obwohl der öffentliche Schlüssel in der entsprechenden Datei auf dem Server steht. Den genauen Fehler hierfür konnte ich noch nicht vollständig eingrenzen. Da ich jedoch ohnehin plane, von vielen Geräten auf den Server zuzugreifen, wollte ich ohnehin die Möglichkeit des Logins mittels eines Passwortes offen lassen. Daher sah ich es ebenfalls als sehr sicher an, die Passworteingabe um die Eingabe eines 2 FA-Codes zu erweitern.
Allerdings kann ich auch bei dieser Technik kein erfolgreiches Ergebnis vorweisen.
Ich habe zunächst einmal den Google Authenticator auf dem Server (bzw. vorerst in einer VM zum testen) installiert und habe diesen eingerichtet. Dabei bin ich einem sehr guten Video auf Youtube gefolgt. Allerdings besitzt dieses Video als Voraussetzung, dass bereits der Publickey zum Login verwendet wird. Ich aber suche eine Lösung, bei welcher zunächst das Passwort eingegeben wird und im Nachgang ein 2 FA-Code eingeben werden soll.
Folgende Schritte habe ich unternommen (nach Dateien aufgeteilt):
/etc/ssh/sshd_config:
PermitRootLogin no
PubkeyAuthentication yes
PasswordAuthentication yes
ChallengeResponseAuthentication yes
AuthenticationMethods password,keyboard-interactive
/etc/pam.d/sshd
#@include common-auth (Auskommentiert)
auth required pam_google_authenticator.so nullok (unten eingefügt)
Teilweise wurden dabei die Zeilen nur einkommentiert und no zu yes geändert. Die Zeilen, welche zuvor in der Datei nicht vorhanden waren, wurden seperat hinzugefügt. Die Schritte unternahm ich auf Anweisung eines sehr guten Videos auf Youtube zum Thema 2 FA bei der Nutzung von SSH.
Nun allerdings wird es kurios:
In der Zeile AuthenticationMethods password,keyboard-interactive schreibt das Video AuthenticationMethods publickey,keyboard-interactive vor. Das kann ich allerdings nicht nutzen. Versuche ich in diesem Moment eine Nutzung, muss ich nur den 2 FA-Code eingeben. Danach verbindet sich SSH korrekt, allerdings weiß ich, dass zuvor die Publickey-Variante nicht funktionierte.
Also habe ich die Zeile geändert auf AuthenticationMethods password,keyboard-interactive . Nun fordert SSH von mir augenscheinlich die Eingabe des Account-Passwortes:
Wenn ich dieses allerdings eingebe, wird mir angezeigt, dass es nicht korrekt ist. (Es ist aber korrekt.) Testweise habe ich an der Stelle auch einfach einmal den Google Code eingegeben, und mit dem habe ich Zugriff auf die Maschine bekommen. Also wird an dieser Stelle nicht das Passwort des Accounts abgefragt, sondern erneut nur der Code. Das ist für mich nicht der Sinn von 2 FA, weil ich ja nur einen Faktor (den Code) vorweise und somit nicht sicher genug.
Gibt es jemanden in diesem Forum, der vielleicht einen 2-FA-Schutz für SSH realisiert hat und mir mit diesem Problem helfen kann. Mein Ziel ist es, dass (wie bei der ganz "normalen" SSH-Verbindung, zunächst der Accountname und das Passwort eingegeben werden sollen und im Nachgang dann der Code aus der Authenticator-App.
Zur Information:
Gastsystem: Ubuntu 24.04.01 LTS (derzeit in einer VirtualBox VM, später dann als V-Server. Aufgrund des Sicherheitsaspektes wollte ich die Installation im Vorfeld einmal durchspielen, ohne das es zu Problemen kommt.)
Zugriffssystem: Windows 10/Windows 11 Systeme, am liebsten direkt über die CMD
Ich würde mich über eine Antwort sehr freuen.
Viele Grüße und vielen Dank bereits im Voraus.
um den Zugriff auf meinen Server möglichst sicher zu gestalten, habe ich versucht, mehrere Sicherheitshürden zu implementieren.
Zum einen habe ich versucht, den Login nur mittels Publickey zu realisieren. Dieser Versuch hat allerdings noch nicht vollständig geklappt, da ich von einem Windows 11 System zugreifen möchte. Über den OpenSSH-Client in der CMD bekomme ich immer einen Fehler, obwohl der öffentliche Schlüssel in der entsprechenden Datei auf dem Server steht. Den genauen Fehler hierfür konnte ich noch nicht vollständig eingrenzen. Da ich jedoch ohnehin plane, von vielen Geräten auf den Server zuzugreifen, wollte ich ohnehin die Möglichkeit des Logins mittels eines Passwortes offen lassen. Daher sah ich es ebenfalls als sehr sicher an, die Passworteingabe um die Eingabe eines 2 FA-Codes zu erweitern.
Allerdings kann ich auch bei dieser Technik kein erfolgreiches Ergebnis vorweisen.
Ich habe zunächst einmal den Google Authenticator auf dem Server (bzw. vorerst in einer VM zum testen) installiert und habe diesen eingerichtet. Dabei bin ich einem sehr guten Video auf Youtube gefolgt. Allerdings besitzt dieses Video als Voraussetzung, dass bereits der Publickey zum Login verwendet wird. Ich aber suche eine Lösung, bei welcher zunächst das Passwort eingegeben wird und im Nachgang ein 2 FA-Code eingeben werden soll.
Folgende Schritte habe ich unternommen (nach Dateien aufgeteilt):
/etc/ssh/sshd_config:
PermitRootLogin no
PubkeyAuthentication yes
PasswordAuthentication yes
ChallengeResponseAuthentication yes
AuthenticationMethods password,keyboard-interactive
/etc/pam.d/sshd
#@include common-auth (Auskommentiert)
auth required pam_google_authenticator.so nullok (unten eingefügt)
Teilweise wurden dabei die Zeilen nur einkommentiert und no zu yes geändert. Die Zeilen, welche zuvor in der Datei nicht vorhanden waren, wurden seperat hinzugefügt. Die Schritte unternahm ich auf Anweisung eines sehr guten Videos auf Youtube zum Thema 2 FA bei der Nutzung von SSH.
Nun allerdings wird es kurios:
In der Zeile AuthenticationMethods password,keyboard-interactive schreibt das Video AuthenticationMethods publickey,keyboard-interactive vor. Das kann ich allerdings nicht nutzen. Versuche ich in diesem Moment eine Nutzung, muss ich nur den 2 FA-Code eingeben. Danach verbindet sich SSH korrekt, allerdings weiß ich, dass zuvor die Publickey-Variante nicht funktionierte.
Also habe ich die Zeile geändert auf AuthenticationMethods password,keyboard-interactive . Nun fordert SSH von mir augenscheinlich die Eingabe des Account-Passwortes:
Wenn ich dieses allerdings eingebe, wird mir angezeigt, dass es nicht korrekt ist. (Es ist aber korrekt.) Testweise habe ich an der Stelle auch einfach einmal den Google Code eingegeben, und mit dem habe ich Zugriff auf die Maschine bekommen. Also wird an dieser Stelle nicht das Passwort des Accounts abgefragt, sondern erneut nur der Code. Das ist für mich nicht der Sinn von 2 FA, weil ich ja nur einen Faktor (den Code) vorweise und somit nicht sicher genug.
Gibt es jemanden in diesem Forum, der vielleicht einen 2-FA-Schutz für SSH realisiert hat und mir mit diesem Problem helfen kann. Mein Ziel ist es, dass (wie bei der ganz "normalen" SSH-Verbindung, zunächst der Accountname und das Passwort eingegeben werden sollen und im Nachgang dann der Code aus der Authenticator-App.
Zur Information:
Gastsystem: Ubuntu 24.04.01 LTS (derzeit in einer VirtualBox VM, später dann als V-Server. Aufgrund des Sicherheitsaspektes wollte ich die Installation im Vorfeld einmal durchspielen, ohne das es zu Problemen kommt.)
Zugriffssystem: Windows 10/Windows 11 Systeme, am liebsten direkt über die CMD
Ich würde mich über eine Antwort sehr freuen.
Viele Grüße und vielen Dank bereits im Voraus.