В статье описана установка под Ubuntu. Используется приложение от Google.
Ставить google-authenticator надо из исходников, мы же не доверяем левым PPA? Для этого потребуется git, build-essential, libpam0g-dev, checkinstall.
Все, все подготовлено для настройки.
Надо сконфигурировать sshd (/etc/ssh/sshd_config)
Перезапустить sshd (текущая сессия не будет разорвана):
Для настройки пользователя надо запустить google-authenticator от каждого пользователя. Там будет выведен секретный ключ для приложения, а так же ссылка на QR код который можно просканировать приложением. Приложение спросит email — это никак не влияет на OTP, это исключительно для вашего удобства, можно ввести user@host.
Установка зависимостей
Ставить google-authenticator надо из исходников, мы же не доверяем левым PPA? Для этого потребуется git, build-essential, libpam0g-dev, checkinstall.
git clone https://code.google.com/p/google-authenticator/
cd libpam/
make
sudo checkinstall -D
sudo dpkg -i libpam_20120827-1_i386.deb
Все, все подготовлено для настройки.
Настройка
# Требовать One Time Password ля любого рода авторизации
echo "auth required pam_google_authenticator.so" >> /etc/pam.d/common-auth
# Требовать только для входа по SSH. Внимание, авторизация по public key идет в обход PAM, а значит OTP не будет спрошен.
echo "auth required pam_google_authenticator.so" >> /etc/pam.d/sshd
# Такая установка требует, чтобы пользователь был предварительно сконфигурирован. Если написать
auth required pam_google_authenticator.so nullok
# то OTP не будет спрошен у не подготовленных пользователей
Надо сконфигурировать sshd (/etc/ssh/sshd_config)
ChallengeResponseAuthentication yes
Перезапустить sshd (текущая сессия не будет разорвана):
/etc/init.d/ssh restart
Для настройки пользователя надо запустить google-authenticator от каждого пользователя. Там будет выведен секретный ключ для приложения, а так же ссылка на QR код который можно просканировать приложением. Приложение спросит email — это никак не влияет на OTP, это исключительно для вашего удобства, можно ввести user@host.