Ich habe einen Artikel gefunden (http://www.howtogeek.com/121650/wie-sichert-man-ssh-mit-google-authenticators-zwei-faktor-authentication/), in dem erklärt wird, wie OpenSSH so konfiguriert wird, dass bei einer erfolgreichen Anmeldung ein Google Authenticator-Code angefordert wird.
Ist es möglich, OpenSSH so zu konfigurieren, dass Folgendes passiert:
- Wenn der Benutzer über den richtigen privaten Schlüssel zum Anmelden beim Server verfügt, melden Sie ihn an.
- Wenn der Benutzer nicht über einen privaten Schlüssel verfügt, der ihm die Anmeldung beim Server erlaubt, fragen Sie den Benutzer nach dem Kennwort des Kontos UND nach einem Google Authenticator-Code.
Dies wäre praktisch (da ich auf meinen Computern nur den privaten Schlüssel benötigen würde) und sicher (da ich die Kennwortauthentifizierung aktiviert und sicher lassen könnte).
Gibt es eine Möglichkeit, mein Ziel zu erreichen?
Dank im Voraus. :)
Antwort1
Es ist durchaus möglich, eine so zu konfigurieren, sshd
dassentwederein gültiges SchlüsselpaaroderVerwenden Sie HOTP (neues Einmalkennwort (OTP) bei jeder Anforderung) OATH-basierte Authentifizierung – ich mache das. Ich bin ziemlich sicher, dass Google Authenticator nur eine weitere OATH-Implementierung ist.
Meinen vollständigen Bericht finden Sie unterhttp://www.teaparty.net/technotes/yubikey-oath.html, aber das Ergebnis ist:
Vorausgesetzt, Ihr Konto sshd
ist bereits für die Authentifizierung auf Basis öffentlicher Schlüssel eingerichtet (was bei den meisten der Fall ist), fügen Sie diese beiden Zeilen hinzu sshd_config
:
PasswordAuthentication no
ChallengeResponseAuthentication yes
Installieren pam_auth
(hierbei handelt es sich um die CentOS-orientierte Methode für x86_64):
yum install pam_oath
ln -s /usr/lib64/security/pam_oath.so /lib64/security/
Erstellen Sie die Authentifizierungsdatei /etc/users.oath
, den Modus 600
und den Eigentümer root:root
und füllen Sie sie mit Zeilen wie:
#type username pin start seed
HOTP fred - 123a567890123b567890123c567890123d567890
Bearbeiten /etc/pam.d/sshd
und fügen Sie die Zeile hinzu
auth required pam_oath.so usersfile=/etc/users.oath window=5 digits=8
Überspringen Sie das digits=8
, wenn Sie mit 6-stelligem HOTP OATH zufrieden sind. Ich glaube, eine ähnliche Methode kann für TOTP OATH verwendet werden (neues OTP alleNSekunden), aber ich verwende Hardware-OATH-Token statt Software-Token, und es sind Yubikeys, die nur HOTP OATH unterstützen.
Der einzige Haken ist, dass wenn Sie sich per SSH anmelden, ohne einen gültigen Schlüssel vorzulegen, nach dem OATH-Code gefragt wirdVordas Passwort. Umgekehrt funktionierte es nicht, aber ich entschied, dass es mir egal war; die Eingabeaufforderungen machen ziemlich deutlich, welches Token angefordert wird.
Antwort2
Sie müssen anhängen:
AuthenticationMethods publickey keyboard-interactive
ohne Komma zwischen publickey
und keyboard-interactive
bis /etc/ssh/sshd_config
. Alle anderen Einstellungen müssen nicht geändert werden (solange die Konfiguration dem angegebenen Howtogeek-Tutorial entspricht).