Wie kann ich mit OpenSSH sowohl die Kennwort- als auch die Public-Key-Authentifizierung aktivieren?

10

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?

Überraschung_
quelle

Antworten:

12

Dies ist ab OpenSSH 6.2 (veröffentlicht im März 2013) mit der AuthenticationMethodsKonfigurationsoption 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 sshund scpzuerst 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:
Søren Løvborg
quelle
1

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 RequiredAuthentications1und RequiredAuthentications2können in der /etc/ssh/sshd_configDatei 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_configOptionen finden Sie in der sshd_configManpage.

mgorven
quelle
0

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_configSie 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.

Mark Wagner
quelle