Öffentlicher Schlüssel oder Passwort und Google Authenticator für die SSH-Anmeldung

Öffentlicher Schlüssel oder Passwort und Google Authenticator für die SSH-Anmeldung

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, sshddassentwederein 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 sshdist 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 600und den Eigentümer root:rootund füllen Sie sie mit Zeilen wie:

#type   username        pin     start seed
HOTP    fred            -       123a567890123b567890123c567890123d567890

Bearbeiten /etc/pam.d/sshdund 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 publickeyund keyboard-interactivebis /etc/ssh/sshd_config. Alle anderen Einstellungen müssen nicht geändert werden (solange die Konfiguration dem angegebenen Howtogeek-Tutorial entspricht).

verwandte Informationen