Czy istnieje generator kodów weryfikujących uwierzytelnianie dwuskładnikowe w wierszu poleceń?

23

Zarządzam serwerem z uwierzytelnianiem dwuskładnikowym. Muszę użyć aplikacji Google Authenticator na iPhone'a, aby uzyskać 6-cyfrowy kod weryfikacyjny, który należy wprowadzić po wprowadzeniu normalnego hasła serwera. Konfiguracja jest opisana tutaj: http://www.mnxsolutions.com/security/two-factor-ssh-with-google-authenticator.html

Chciałbym uzyskać sposób, aby uzyskać kod weryfikacyjny za pomocą tylko mojego laptopa, a nie z iPhone'a. Musi istnieć sposób na zainicjowanie aplikacji wiersza polecenia, która generuje te kody weryfikacyjne i podaje kod dla bieżącego 30-sekundowego okna.

Czy istnieje program, który może to zrobić?

Dan
źródło

Odpowiedzi:

24

Tak, oathtoolmogę to zrobić. Będziesz musiał zapełnić go wspólnym sekretem ze swojego serwera.

Możesz zainstalować go z oath-toolkitpakietu.

EEAA
źródło
Czy jest to zgodne z modułem PAM Google Authenticator? Wygląda na inną (choć funkcjonalnie równoważną) bestię ...
voretaq7
2
Tak - z --totpflagą implementuje ten sam zgodny z normami TOTP alg, co Google Authenticator.
EEAA
2
Jest oathtool. W wielu przypadkach potrzebujesz zarówno flagi, jak --totpi -bflagi (dekodowanie base32)
Zouppen
1
FWIW, napisałem wrapper powłoki dla narzędzia oathtool, który jest funkcjonalnie równoważny Authy na CLI: github.com/poolpog/bash-otp
JDS
FWIW: Napisałem C-wrapper, który używa libpam-google-authenticatordo weryfikacji tokenów. Zobacz github.com/hilbix/google-auth - w README checktotppokazana jest funkcja . Wystarczy usunąć, | fgrep -qx "$1";aby zobaczyć tokeny.
Tino
3

Istnieje wiele implementacji Authenticator innych firm. Sprawdź listę na stronie wikipedii . Na przykład możesz użyć onetimepass (napisanego w Pythonie) do korzystania z wiersza poleceń.

Jeff VanNieulande
źródło
3

Istnieje również implementacja go na github na https://github.com/pcarrier/gauth

Ten używa pliku konfiguracyjnego ~/.config/gauth.csvdo przechowywania tokenów w następującym formacie

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

Wyjście też jest raczej przyjazne:

$ gauth
           prev   curr   next
AWS        315306 135387 483601
Airbnb     563728 339206 904549
Google     453564 477615 356846
Github     911264 548790 784099
[=======                      ]
Adam Terrey
źródło
2

O ile mi wiadomo, Google wydaje tylko aplikację Authenticator na telefony (iOS, Android).
(Stanowi to problem dla paranoicznych ludzi takich jak ja, którzy tak naprawdę nie ufają historii Google zaprzestania świadczenia usług z niewielkim wyprzedzeniem i woleliby generator tokenów, który możemy zobaczyć w środku.)

Możesz rozważyć inne alternatywy, takie jak system jednorazowych haseł .


Szczerze mówiąc, otrzymanie kodu weryfikacyjnego z laptopa niweczy aspekt uwierzytelniania dwuskładnikowego (każdy, kto przechwytuje laptopa, ma teraz generator kodu - to część tego, przed czym ma chronić Authenticator).

voretaq7
źródło
Zgadzam się z opinią, że osobne urządzenie jest zasadniczo niezbędne dla 2FA. Czy to drugie urządzenie może być jednak zdalnym serwerem?
Jerry W.,
1
Przechowywanie sekretu TOTP na laptopie zamiast na telefonie jest nadal o wiele, dużo lepsze niż brak TOTP, jeśli nie przechowujesz hasła na laptopie (np. W przeglądarce haseł przeglądarki). Osoby atakujące MITM (takie jak rejestratory kluczy) nie mają dostępu do tajnego klucza TOTP, tylko do kodu czasowego, a więc przechwytują informacje uwierzytelniające tylko przez minutę lub dwie. Skradziony laptop ma sekret TOTP, ale nie hasło. (Będziesz musiał użyć słabszego hasła, aby było zapamiętane, ale to nie przeszkadza w przypadku TOTP.) Zmuszenie atakujących do wąchania hasła i kradzieży tajemnicy komplikuje ich zadanie.
Curt J. Sampson,
Jeszcze jedna uwaga: w praktyce TOTP nie jest technicznie uwierzytelnianiem dwuskładnikowym w najściślejszym znaczeniu, ponieważ zarówno hasło, jak i klucz tajny TOTP są „czymś, co wiesz”. Każde z nich można skopiować bez wiedzy właściciela o utracie tajemnicy.
Curt J. Sampson,
1

Możesz spróbować http://soundly.me/oathplus

To narzędzie opracowałem na cześć czcigodnego oathtool, które pozwala czytać kody QR i przechowywać informacje o koncie OTP do późniejszego wykorzystania. Możesz myśleć o tym jako o Google Authenticator dla wiersza poleceń, ponieważ może pobierać i odczytywać kody QR oraz konsumować otpauth://identyfikatory URI. (Tylko bankomat OSX.)

słoik
źródło
0

Wiersz polecenia systemu Windows gauth.exe do użytku z vim, podczas edycji pliku zawierającego kody gauth.

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

Jest to rozwidlenie https://github.com/pcarrier/gauth do kompilacji na Windows7.

Test / użycie:

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
źródło