Подготовка сервера Если вы хотите ставить пакет из репозитория, а не собирать самому, то вам придется воспользоваться предыдущей статьей на этом блоге, в которой подробно написано как добавить экстра репозитории Remi и Epel себе в систему. Далее проверим и убедимся, что время на сервере в порядке: yum install ntp -y chkconfig ntpd on; ntpdate pool.ntp.org; /etc/init.d/ntpd start Если вам необходимо сменить часовой пояс, это просто: mv /etc/localtime /etc/localtime.old ln -sf /usr/share/zoneinfo/Europe/Athens /etc/localtime hwclock --systohc Теперь нужен сам пакет, из репозитория: yum install google-authenticator -y Или собираем из исходников: yum install gcc gcc++ pam-devel subversion python-devel git wget make Выделим для кода папку: mkdir /root/google-authenticator; cd /root/google-authenticator Получим код: git clone https://code.google.com/p/google-authenticator/ cd google-authenticator/libpam/ Скомпилируем код и поставим в систему: sudo make && make install Настраиваем OpenSSH Откроем файл настройки аутентификации и перепилим его: cp /etc/pam.d/sshd /etc/pam.d/sshd.bak vim /etc/pam.d/sshd Содержимое: auth required pam_google_authenticator.so auth include password-auth account include password-auth session include password-auth account required pam_nologin.so Откроем файл настройки OpenSSH: vim /etc/ssh/sshd_config И меням «no» на «yes»: ... ChallengeResponseAuthentication yes ... Так-же смотрим что параметр UsePAM включен: ... UsePAM yes ... Перезапускаем демон OpenSSH: service sshd restart И запускаем google-authenticator: google-authenticator Там видим ссылку на QR код, его сканируем аппликацей Google Authenticator для этого у вас в телефоне должен быть уже установлен ZXing Barcode Scanner которая кстати open source После того как телефон прочитал QR код можно смело отвечать на все вопросы которые задаст вам утилита: — Сохранить всё насовсем в ~/.google_authenticator? — y — Запретить использование одного кода несколько раз? Помогает заметить или даже предотвратить атаку man-in-the-middle. — y — Увеличить окно времени с приблизительно 1.5 минут до 4 минут? — n (и тут сразу проверяем, точно ли время в телефоне; впрочем, Google Authenticator последних версий умеет синхронизировать время из интернета) — Ограничить число попыток логина за промежуток времени? — y Теперь можете осуществить логин на сервер (Видно что добавилась строчка Verification code): login as: root Using keyboard-interactive authentication. Verification code: Using keyboard-interactive authentication. Password: Last login: Mon Sep 9 15:55:44 2013 from P.S.: Кстати, в новой версии OpenSSH есть возможность замутить аутентификацию по ключу и токену. В старой версии такого нет. В CentOS 6.4 в репах и в системе старая версия 5.3p1, а надо OpenSSH 6.2 минимум. Такую версию для CentOS придется собирать самому. Исходники тут. P.S2.: Хотя вот нашлись и RPM пакеты тут.