Logując się do aplikacji Google możemy skorzystać z dwustopniowego uwierzytelnienia. Poza standardowym pytaniem o hasło, Google prosi o jednorazowy kod, który może zostać do nas wysłany SMSem, odczytany z aplikacji Google Authenticator na telefonie komórkowym lub odsłuchany z wiadomości głosowej. Metodę dwuskładnikowego uwierzytelnienie możemy również wykorzystać do logowania się po SSH do serwera. Google przygotowało specjalny moduł – libpam-google-authenticator.
Do skorzystania z tej metody potrzebna będzie aplikacja Google Authenticator dla telefonów komórkowych. Kolejnym krokiem będzie zainstalowanie modułu PAM.
Pobieramy plik libpam-google-authenticator-1.0-source.tar.bz2, wypakowujemy go i kompilujemy.
[thecamels@release ~]$ make [root@release ~]$ make install
Na systemach RHEL oraz CentOS do poprawnej kompilacji wymagana jest paczka pam-devel. Następnie do pliku /etc/pam.d/sshd należy dodać na samym początku wpis:
auth required pam_google_authenticator.so
Ostatnim krokiem jest konfiguracja SSH, która zazwyczaj znajduje się w pliku: /etc/ssh/sshd_config, w której należy zaktualizować lub dodać opcję:
ChallengeResponseAuthentication yes
Kolejnym krokiem jest wygenerowanie sekretnego klucza. Odpowiada za to polecenie google-authenticator. Uruchamiamy je z konta użytkownika, który będzie korzystał z tej metody uwierzytelnienia.
[thecamels@release ~]$ google-authenticator Do you want authentication tokens to be time-based (y/n) y https://www.google.com/chart?chs=200x200&chld=M|0&cht=qr&chl=otpauth://totp/thecamels@release%3Fsecret%3DOIMEINBS3QIX6WZH Your new secret key is: BWWEABGTYSJNKLQL Your verification code is 375093 Your emergency scratch codes are: 42025097 15985152 53691877 15562664 39541888 Do you want me to update your "/home/thecamels/.google_authenticator" file (y/n) y Do you want to disallow multiple uses of the same authentication token? This restricts you to one login about every 30s, but it increases your chances to notice or even prevent man-in-the-middle attacks (y/n) y By default, tokens are good for 30 seconds and in order to compensate for possible time-skew between the client and the server, we allow an extra token before and after the current time. If you experience problems with poor time synchronization, you can increase the window from its default size of 1:30min to about 4min. Do you want to do so (y/n) y If the computer that you are logging into isn't hardened against brute-force login attempts, you can enable rate-limiting for the authentication module. By default, this limits attackers to no more than 3 login attempts every 30s. Do you want to enable rate-limiting (y/n) y [thecamels@release ~]$
Wygenerowany został URL z obrazkiem, który pozwoli nam na szybką konfigurację aplikacji na telefonie komórkowym. Google wygenerowało również jednorazowe kody, które pozwolą nam na zalogowanie do serwera w przypadku kiedy nie mamy dostępu do telefonu komórkowego.
Po skonfigurowaniu serwera, należy zrestartować usługę SSH oraz skonfigurować telefon.
Czas na testy:
[thecamels@muszelka~]$ ssh release Verification code: Password: [thecamels@release~]$
Aby zalogować się na serwer, należy podać token wygenerowany przez aplikację na telefonie oraz poprawne hasło. Jeżeli nie mamy dostępu do telefonu, możemy skorzystać z wygenerowanych wcześniej kodów.

























Super ;) Wygląda niesamowicie :) Widze, ża za mądry artykuł bo nikt nie komentuje :P
Brakuje mi wersji tokena na JAVE, jest ciągle spora grupa userów z Symbianami, choć to martwa platforma bez przyszłości, klient na JAVE powinien być.
Istnieją już dwa projekty działające pod Symbianem
Osobiście polecam pierwszy http://code.google.com/p/lwuitgauthj2me/ http://code.google.com/p/gauthj2me/
Widzę, że Google się popisało i na prawdę odwaliło kawał dobrej roboty – widać tutaj ich wsparcie dla Linuksa, starają się, a nie tak jak NVIDIA ;-)
Szczerze mowiac to zadna nowosc. Od lat uzywam do tego celu uTokena. Dziala na identycznej zasadzie i jest bardzo konfigurowalny (moze nawet za bardzo :P). Tyle, ze generator jest jedynie na javame :( Ale da sie na Androidzie odpalic.
Pozdr.
Marcin.
Ale niestety ostatnia wersja utokena wyszla chyba w 2009r, czyli dosc dawno :/
Wygląda super :) A jak się skończy lista kodów jednorazowych i nie masz telefonu to co? I czy da się logować za pomocą kilku komórek i kilku kont?
Dodałem sobie właśnie do mojej domowej Fedorki. Działa świetnie i prosto się instaluje. Polecam każdemu bo to zwiększy bezpieczeństwo twojego systemu.
Ale jak to działa? Skąd Linux wie jaki masz kod na komórce? :?
Kod generowany na podstawie sekretu i czasu które są znane po obu stronach.
A jak jest różnica czasu to co?