Az alábbiakban bemutatom hogyan lehet használni a kétlépcsős azonosítást távoli ssh hozzáféréshez elsősorban debian/ubuntu szervernél.
De mi is ez a kétlépcsős azonosítás?
A Google Authenticator, hitelesítő a sima jelszó használatát kiegészíti egy plusz azonosító lépcsővel ami a telefonon keresztül érkezik.
A kétlépcsős azonosítás révén megakadályozhatja, hogy idegenek csupán a jelszó megszerzésével használni tudják fiókját. Ha kétlépcsős azonosítást használ a bejelentkezésnél, személyazonosságát mind jelszó, mind a telefonjára kapott kód segítségével igazolnia kell.
Mire lesz szükségünk?
Először is egy Iphone/Android/Blackberry telefonra, amire telepíthetjük a Google Hitelesítő szoftverét ami egy 30 másodperces Time-based One-time Password (TOTP) algoritmust használva segíti a bejutást.
Valamint szükségünk van egy debian/ubuntu szerverre, amelyre az ssh jelszaván kívül egy egyszer használatos kódot is megadva szeretnénk elérni.
Állítsuk be a szervert a kétlépcsős azonosításhoz.
Telepítsük a szükséges programokat a szerverre:
apt-get install build-essential mercurial libpam0g-dev subversion
Ezután töltsük le a google-authenticator forrását:
hg clone https://google-authenticator.googlecode.com/hg/ google-authenticator
Fordítsuk le a Pluggable authentication modules – Csatlakoztatható Azonosítási Modulok, azaz PAM felhasználói azonosításhoz szükséges modulját:
cd google-authenticator/libpam/ make install
A make install parancs lefordítja és a lefordított modult és binárist bemásolja a helyükre:
cp pam_google_authenticator.so /lib/security cp google-authenticator /usr/local/bin
Itt most két lehetőségünk van az azonosítás megadására.
Amennyiben általánosan engedélyezni akarjuk a google hitelesítést, úgy az /etc/pam.d/common-auth fájlhoz, amennyiben csak az ssh belépéshez szeretnénk engedélyezni, úgy az /etc/pam.d/sshd fájl elejére vegyük fel a következő sort:
auth required pam_google_authenticator.so
Ezután az /etc/ssh/sshd_confing fájlban engedélyezzük, azaz állítsuk YES re az alábbi paramétert utána indítsuk újra az SSH szervert:
ChallengeResponseAuthentication yes
/etc/init.d/ssh restart
Futtassuk le a felhasználó nevében a hitelesítőt, ami legenerálja a .google_authenticator fájlt ami tartalmazza az alábbi kiírt adatokat amelyek lehetővé teszik a két lépcsős azonosítást:
$ google-authenticator https://www.google.com/chart?chs=200x200&chld=M|0&cht=qr&chl=otpauth://totp/cvk@mail2%3Fsecret%3AAAAAAAAAAAAAAAA Your new secret key is: AAAAAAAAAAAAA Your verification code is 123456 Your emergency scratch codes are: 12345678 12345678 12345678 12345678 12345678 Do you want me to update your "~/.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
Ezután állítsuk be a telefonunkon a fent kapott nevet és kulcsot hogy a készülék generáljon nekünk egyszer használatos ellenőrző kódot:
A fióknév az a szerveren lévő felhasználó és a szerver nevéből áll össze azaz felhasznalo@gepnev, a kulcs pedig a fentebb generált Your new secret key is: után következik.


Nincs más hátra, mint hogy csatlakozzunk a beállított szerverünkhöz az új egyszeri belépésre lehetőséget adó ellenőrző kóddal valamint az ssh felhasználóhoz tartozó jelszóval.
$ ssh mail2 Verification code: Password: Linux mail2 2.6.32-4 #1 SMP Mon May 9 12:59:57 CEST 2011 i686 The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. cvk@mail2:~$
.
Legutóbbi hozzászólások