Ich möchte, dass sshd den öffentlichen Schlüssel der Benutzer überprüft und dann nach ihrem Kennwort fragt, anstatt nur nach dem einen oder anderen. Ist das möglich?
quelle
Ich möchte, dass sshd den öffentlichen Schlüssel der Benutzer überprüft und dann nach ihrem Kennwort fragt, anstatt nur nach dem einen oder anderen. Ist das möglich?
Derzeit nicht. Aber es gibt einige Patches, die dies hinzufügen sollen.
Dies ist ab OpenSSH 6.2 (veröffentlicht im März 2013) mit der AuthenticationMethods
Konfigurationsoption endlich verfügbar .
Sie können beispielsweise die folgende Zeile hinzufügen sshd_config
, um sowohl die Authentifizierung mit öffentlichem Schlüssel als auch mit Kennwort zu erfordern:
AuthenticationMethods publickey,password
Wenn Sie sich anmelden ssh
und scp
zuerst die Authentifizierung mit öffentlichem Schlüssel durchführen und dann nach einem Kennwort fragen:
$ ssh [email protected]
Authenticated with partial success.
[email protected]'s password:
Wenn Sie ein Passwort für Ihre private Schlüsseldatei haben, werden Sie natürlich zuerst dazu aufgefordert. Beispiel mit PuTTY :
Using username "user".
Authenticating with public key "rsa-key-20131221-user"
Passphrase for key "rsa-key-20131221-user":
Further authentication required
[email protected]'s password:
OpenSSH in RHEL / CentOS 6.3 unterstützt diese Funktion jetzt, obwohl ich sie in den OpenSSH-Versionshinweisen nicht finden kann. Aus den RHEL-Versionshinweisen :
SSH kann jetzt so eingerichtet werden, dass mehrere Authentifizierungsmethoden erforderlich sind (während SSH zuvor mehrere Authentifizierungsmethoden zuließ, von denen nur eine für eine erfolgreiche Anmeldung erforderlich war). Für die Anmeldung an einem SSH-fähigen Computer müssen beispielsweise sowohl eine Passphrase als auch ein öffentlicher Schlüssel eingegeben werden. Die Optionen
RequiredAuthentications1
undRequiredAuthentications2
können in der/etc/ssh/sshd_config
Datei konfiguriert werden, um Authentifizierungen anzugeben, die für eine erfolgreiche Anmeldung erforderlich sind. Beispiel:~]# echo "RequiredAuthentications2 publickey,password" >> /etc/ssh/sshd_config
Weitere Informationen zu den oben genannten
/etc/ssh/sshd_config
Optionen finden Sie in dersshd_config
Manpage.
Es ist möglich, aber auf eine klobige und begrenzte Art und Weise. Zunächst erlauben Sie nur die Authentifizierung mit öffentlichem Schlüssel. Fügen /etc/ssh/sshd_config
Sie dann ein hinzu ForceCommand
, das ein Skript ausführt, das das Kennwort überprüft.
Das Skript unterbricht SFTP, es sei denn, Sie überprüfen, ob der Befehl sftp ist, und lassen ihn ohne Kennwort durch.
Ich habe das noch nie versucht, damit jemand mehr Probleme sehen kann.