
Kann ich auf einem SFTP-Server gleichzeitig eine schlüsselbasierte und eine kennwortbasierte Authentifizierung implementieren? Ich möchte, dass der Server zuerst die schlüsselbasierte Authentifizierung durchführt und, wenn diese korrekt war, eine kennwortbasierte Authentifizierung anfordert. Ist dies umsetzbar?
Antwort1
SFTP fast immer (aber nicht unbedingt) verwendet SSH als Transportmittel. Die Authentifizierung erfolgt auf SSH-Ebene. Die gesuchte Option gehört daher zur Konfiguration des SSH-Servers.
Ich gehe von OpenSSH aus. Sieheman 5 sshd_config
[Hervorhebung von mir]:
AuthenticationMethods
Gibt die Authentifizierungsmethoden an, die erfolgreich abgeschlossen werden müssen, damit ein Benutzer Zugriff erhält. Auf diese Option müssen eine oder mehrere Listen mit kommagetrennten Namen von Authentifizierungsmethoden folgen oder die einzelne Zeichenfolge „any“, um das Standardverhalten anzugeben, bei dem eine einzelne Authentifizierungsmethode akzeptiert wird. Wenn die Standardeinstellung überschrieben wird, ist für eine erfolgreiche Authentifizierung die Ausführung aller Methoden in mindestens einer dieser Listen erforderlich.
Zum Beispiel,
publickey,password publickey,keyboard-interactive
Der Benutzer muss eine Authentifizierung mit öffentlichem Schlüssel und anschließend entweder ein Kennwort oder eine interaktive Authentifizierung über die Tastatur durchführen.In jeder Phase werden nur die Methoden angeboten, die als nächstes in einer oder mehreren Listen stehen. Daher wäre es in diesem Beispiel nicht möglich, vor dem öffentlichen Schlüssel eine Authentifizierung per Kennwort oder Tastatur zu versuchen.[…]
(Randnotiz:Was ist der Unterschied zwischen password
und keyboard-interactive
?)
Es scheint, dass das Beispiel genau das ist, was Sie wollen.
Beachten Sie, dass die Einstellung nicht nur SFTP, sondern jede Verwendung von SSH betrifft. Soweit ich weiß, können Sie die Einstellung für SFTP nicht einfach anders verwenden als für alles andere, da die Authentifizierung erfolgt, bevor der Server weiß, dass Sie SFTP möchten. Der Server kennt den Benutzer jedoch früh genug. Wenn Sie dies also für „Nur-SFTP-Benutzer“ benötigen, ist es dank einer bedingten Sperre möglich, nur diese zu beeinflussen (Match
).
Nachdem Sie die Konfigurationsdatei geändert haben, müssen Sie den SSH-Server neu starten oder ihn anderweitig anweisen, die Konfiguration neu zu laden. sshd
OpenSSH liest seine Konfiguration erneut, wenn ein Auflegesignal (SIGHUP) empfangen wird.