Gibt es einen Zwei-Faktor-Authentifizierungs-Code-Generator für die Befehlszeile?

23

Ich verwalte einen Server mit Zwei-Faktor-Authentifizierung. Ich muss die iPhone-App von Google Authenticator verwenden, um den 6-stelligen Bestätigungscode einzugeben, nachdem ich das normale Server-Passwort eingegeben habe. Das Setup wird hier beschrieben: http://www.mnxsolutions.com/security/two-factor-ssh-with-google-authenticator.html

Ich hätte gerne eine Möglichkeit, den Bestätigungscode nur mit meinem Laptop und nicht mit meinem iPhone abzurufen. Es muss eine Möglichkeit geben, eine Befehlszeilen-App zu erstellen, die diese Überprüfungscodes generiert und den Code für das aktuelle 30-Sekunden-Fenster anzeigt.

Gibt es ein Programm, das das kann?

Dan
quelle

Antworten:

24

Ja, das oathtoolkann man machen. Sie müssen es mit dem gemeinsamen Geheimnis von Ihrem Server setzen.

Sie können es aus dem oath-toolkitPaket installieren .

EEAA
quelle
Ist dies mit dem Google Authenticator PAM-Modul kompatibel? Es scheint wie ein anderes (wenn auch funktional gleichwertiges) Tier ...
voretaq7
2
Ja, mit der --totpFlagge wird derselbe standardkonforme TOTP-Alg implementiert, den Google Authenticator ausführt.
EEAA
2
Es ist oathtool. In vielen Fällen müssen Sie beide --totpund -bFlagge (Base32-Decodierung)
Zouppen
1
FWIW, ich habe einen Shell-Wrapper für Oathtool geschrieben, der Authy funktional entspricht: github.com/poolpog/bash-otp
JDS
FWIW: Ich habe einen C-Wrapper geschrieben, mit libpam-google-authenticatordem Token überprüft werden. Siehe github.com/hilbix/google-auth - in der README wird die Funktion checktotpangezeigt. Entfernen Sie einfach die | fgrep -qx "$1";, um die Token zu sehen.
Tino
3

Es gibt viele Authenticator-Implementierungen von Drittanbietern. Schauen Sie sich die Liste auf der Wikipedia- Seite an. Möglicherweise können Sie onetimepass (das in Python geschrieben ist) für die Verwendung in der Befehlszeile verwenden.

Jeff VanNieulande
quelle
3

Es gibt auch eine Go-Implementierung für Github unter https://github.com/pcarrier/gauth

Dieser verwendet eine Konfigurationsdatei ~/.config/gauth.csv, um die Token in folgendem Format zu speichern

[email protected]: abcd efg hijk lmno
aws-account: mygauthtoken

Und die Ausgabe ist auch ziemlich freundlich:

$ gauth
           prev   curr   next
AWS        315306 135387 483601
Airbnb     563728 339206 904549
Google     453564 477615 356846
Github     911264 548790 784099
[=======                      ]
Adam Terrey
quelle
2

Soweit mir bekannt ist, gibt Google die Authenticator-Anwendung nur für Telefone (iOS, Android) frei.
(Dies stellt ein Problem für paranoide Leute wie mich dar, die Googles Geschichte, Dienste ohne Vorankündigung einzustellen, nicht wirklich vertrauen und einen Token-Generator bevorzugen, den wir innerhalb von sehen können.)

Sie können auch andere Alternativen in Betracht ziehen, z. B. ein Einmalpasswort-Pad-System .


Um ehrlich zu sein, der Erhalt des Bestätigungscodes von Ihrem Laptop beseitigt den Zweifaktor-Authentifizierungsaspekt (jeder, der den Laptop erfasst, hat jetzt den Codegenerator - das ist ein Teil dessen, vor dem Authenticator schützen soll).

voretaq7
quelle
Ich stimme der Auffassung zu, dass für 2FA grundsätzlich ein separates Gerät erforderlich ist. Könnte das sekundäre Gerät jedoch ein Remote- Server sein?
Jerry W.
1
Das Speichern Ihres TOTP-Geheimnisses auf Ihrem Laptop anstelle Ihres Telefons ist immer noch viel, viel besser als gar kein TOTP, wenn Sie Ihr Kennwort nicht auf Ihrem Laptop speichern (z. B. im Kennwortagenten Ihres Browsers). MITM-Angreifer (wie z. B. Schlüsselprotokollierer) haben keinen Zugriff auf das TOTP-Geheimnis, nur auf den zeitbasierten Code, und erfassen daher die Authentifizierungsinformationen nur für ein oder zwei Minuten. Ein gestohlener Laptop hat das TOTP-Geheimnis, aber nicht das Passwort. (Sie müssen ein schwächeres Passwort verwenden, um es einprägsam zu machen, aber das ist in Ordnung mit TOTP.) Angreifer dazu zu bringen, das Passwort zu beschnüffeln und das Geheimnis zu stehlen, erschwert ihre Aufgabe.
Curt J. Sampson
Noch eine Anmerkung: TOTP ist technisch gesehen keine Zwei-Faktor-Authentifizierung im engeren Sinne, da sowohl das Passwort als auch das TOTP-Geheimnis "etwas sind, das man kennt". Beides kann ohne Wissen des Inhabers über den Verlust der Geheimhaltung kopiert werden.
Curt J. Sampson
1

Sie könnten http://soundly.me/oathplus versuchen

Dies ist ein Tool, das ich oben auf dem ehrwürdigen oathtoolentwickelt habe und mit dem Sie QR-Codes lesen und OTP-Kontoinformationen für die spätere Verwendung aufbewahren können. Sie können es sich als Google Authenticator für die Befehlszeile vorstellen, da es QR-Codes herunterladen und lesen und otpauth://URIs verwenden kann. (Nur OSX atm.)

Krug
quelle
0

Eine Windows-Befehlszeile gauth.exe zur Verwendung von vim beim Bearbeiten einer Datei, die Gauth-Codes enthält.

https://github.com/moshahmed/gauth/releases/download/mosh1/gauth-vim-stdin-win7-2019-01-08.zip

Es ist eine Abzweigung von https://github.com/pcarrier/gauth zum Kompilieren unter Windows7.

Test / Nutzung:

c:\Go\src\cmd\vendor\github.com\pcarrier\gauth-vim-stdin-win7> echo "dummy1: ABCD" | gauth.exe
prev curr next
dummy1 562716 725609 178657
[== ]

Usage from vim, when your cursor is on line
"dummy1: ABCD"
: . w ! gauth
" temp shell window popup with codes.
mosh
quelle