ssh mit Passphrase, Fallback auf Google Authenticator

8

Mit der Einführung von Google Authenticator und der Möglichkeit, es mit ssh zu verwenden, habe ich mich gefragt, ob jemand ein sshd_config-Setup durchlaufen hat, das dies tun würde

  • Erwarten Sie zuerst einen Schlüssel
  • Wenn dies fehlschlägt, greifen Sie auf eine Authentifizierung mit Google Authenticator zurück

Die Idee ist, sich normalerweise nahtlos mit einem Schlüssel zu verbinden und sich in weniger freundlichen Umgebungen mit einem Zwei-Faktor-Mechanismus zu verbinden.

WoJ
quelle

Antworten:

16

Ja, ich habe ein Setup, in dem ich sshmithilfe der Authentifizierung mit öffentlichem Schlüssel auf meinen Server zugreifen kann. Bei Verwendung meines privaten Schlüssels wird auf die Zwei-Faktor-Authentifizierung mit Google Authenticator + Kennwort zurückgegriffen. Mit diesen Schritten können Sie es einrichten.

Installieren von Google Authenticator

Auf meinem Server wird Ubuntu Bionic Beaver (18.04.1) ausgeführt. Sie können Google Authenticator installieren mit apt:

$ sudo apt install libpam-google-authenticator

SSHD konfigurieren

Öffnen /etc/pam.d/sshdSie die folgende Zeile und fügen Sie sie oben hinzu:

auth optional pam_google_authenticator.so

Öffnen /etc/ssh/sshd_configund ändern Sie eine Zeile. Die bestehende Linie ist

ChallengeResponseAuthentication no

und du solltest es ändern in

ChallengeResponseAuthentication yes

Konfigurieren von Google Authenticator für Ihr Konto

Der nächste Schritt besteht darin, Google Authenticator für Ihr Konto zu aktivieren. Sie tun dies, indem Sie einfach Folgendes ausführen:

$ google-authenticator

Stellen Sie sicher, dass Sie dies als Benutzer ausführen, der SSH-Verbindungen herstellt, nicht als Root. Notieren Sie sich Ihren neuen geheimen Schlüssel und Ihre Notfall-Rubbelcodes. Der Assistent stellt Ihnen verschiedene Fragen, um die Sicherheitseinstellungen für Ihr Konto zu konfigurieren.

Konfigurieren Ihrer mobilen App

Ich verwende die Google Authenticator-App für das iPhone. Diese App verfügt über eine Schaltfläche [+], mit der ich mithilfe des geheimen Schlüssels, den ich über den google-authenticatorBefehl auf meinem Server erhalten habe, ein neues zeitbasiertes Token hinzufügen kann. Es war trivial einzurichten. Ich kann Ihnen mit Apps auf keiner anderen Plattform helfen, aber ich stelle mir vor, dass der Vorgang genauso einfach ist.

Abzug betätigen

Das letzte, was Sie tun müssen, ist ein Neustart sshd.

$ sudo /etc/init.d/ssh restart

Wenn Sie zu diesem Zeitpunkt versuchen, eine Verbindung zum Server herzustellen, wenn Ihr privater Schlüssel verfügbar ist, funktioniert die Authentifizierung nur. Wenn Ihr privater Schlüssel nicht verfügbar ist, werden Sie aufgefordert, einen Bestätigungscode und anschließend Ihr Kontokennwort einzugeben.

Bingo, Zwei-Faktor-Authentifizierung.

William Jackson
quelle
Vielen Dank - das ist sehr vollständig und genau das, wonach ich gesucht habe.
WoJ
Sieht gut aus, genau das, was ich brauche. Ich werde deine Anweisungen befolgen und danach Feedback geben.
Peipst9lker