ssh Keyboard Authentication: когда вводить код Google Authenticator

1154
TresPaul

Эти вопросы кажутся связанными:

Я считаю, что мои обстоятельства достаточно разные, чтобы начать новую тему.


Я настроил SSH для использования PAM с Google-Authenticator. Я добавил необходимые строки в оба /etc/ssh/sshd_configи /etc/pam.d/sshdнастроил Google Authenticator на обоих компьютерах и в приложении. Открытый ключ каждой системы копируется в другую.

В /etc/ssh/sshd_config:

PasswordAuthentication no ChallengeResponseAuthentication yes AuthenticationMethods publickey,keyboard-interactive:pam 

В /etc/pam.d/sshd:

#%PAM-1.0 auth required pam_securetty.so #disable remote root # require google authenticator auth required pam_google_authenticator.so # but not password #auth include system-remote-login account include system-remote-login password include system-remote-login session include system-remote-login 

Это вывод из ssh -vvv 192.IP.address.0:

OpenSSH_7.4p1, OpenSSL 1.0.2j 26 Sep 2016 ... debug3: send packet: type 20 debug1: SSH2_MSG_KEXINIT sent debug3: receive packet: type 20 debug1: SSH2_MSG_KEXINIT received debug2: local client KEXINIT proposal debug2: KEX algorithms: ... ... debug2: service_accept: ssh-userauth ... debug1: Authentications that can continue: publickey debug3: start over, passed a different list publickey debug3: preferred publickey,keyboard-interactive,password debug3: authmethod_lookup publickey debug3: remaining preferred: keyboard-interactive,password debug3: authmethod_is_enabled publickey debug1: Next authentication method: publickey debug1: Offering RSA public key: /home/trespaul/.ssh/id_rsa debug3: send_pubkey_test debug3: send packet: type 50 debug2: we sent a publickey packet, wait for reply debug3: receive packet: type 60 debug1: Server accepts key: pkalg ssh-rsa blen 279 debug2: input_userauth_pk_ok debug3: sign_and_send_pubkey Enter passphrase for key '/home/trespaul/.ssh/id_rsa':  debug3: send packet: type 50 debug3: receive packet: type 51 Authenticated with partial success. debug1: Authentications that can continue: **keyboard-interactive** debug3: **start over**, passed a different list keyboard-interactive debug3: preferred publickey,keyboard-interactive,password debug3: authmethod_lookup keyboard-interactive debug3: remaining preferred: password debug3: authmethod_is_enabled keyboard-interactive debug1: Next authentication method: **keyboard-interactive** debug2: userauth_kbdint debug3: send packet: type 50 debug2: **we sent a keyboard-interactive packet**, wait for reply debug3: receive packet: type 51 debug1: Authentications that can continue: keyboard-interactive debug3: userauth_kbdint: disable: no info_req_seen debug2: we did not send a packet, disable method debug1: No more authentication methods to try. Permission denied (keyboard-interactive). 

Между двумя последними жирным шрифтом / двойной звездой («следующий метод аутентификации - интерактивный kbd» и «мы отправили пакет») меня не спрашивают о моем OTP. Почему это? Что мне не хватает?

Дополнительная информация

Я на Арке. libpam-google-authenticatorустановлен с AUR с make installт. д.

Изменить: журнал сервера

journalctl на сервере есть следующее:

systemd[1]: Started OpenSSH Per-Connection Daemon (10.0.0.5:38150). sshd[1376]: PAM unable to dlopen(/usr/lib/security/pam_google_authenticator.so): /usr/lib/security/pam_google_authenticator.so: cannot open shared object file: No such file or directory sshd[1376]: PAM adding faulty module: /usr/lib/security/pam_google_authenticator.so sshd[1376]: error: PAM: Module is unknown for paul from 10.0.0.5 sshd[1376]: Connection closed by 10.0.0.5 port 38150 [preauth] 

Благодарю.

0
какие ошибки вы видите в журнале сервера? Jakuje 7 лет назад 1
Jakuje, спасибо, это полностью ускользнуло от меня. Похоже, `/ usr / lib / security / pam_google_authenticator.so` не существует. Однако при установке говорилось, что она была успешно добавлена ​​в / usr / lib / security. TresPaul 7 лет назад 0

2 ответа на вопрос

1
TresPaul

Так что я решил это с

sudo cp '.../AUR Package/.libs/pam_google_authenticator.so' /usr/lib/security/pam_google_authenticator.so 

Ошибка была в отсутствующем .soфайле, означавшем, что что-то пошло не так или я что-то пропустил во время установки.


Это, однако, не похоже на лучшую практику. Если у кого-то есть лучшее, более элегантное решение, пожалуйста, не стесняйтесь добавлять в качестве ответа.

0
grawity

libpam-google-authenticatorустановлен с AUR с make installт. д.

Это не так, как вы устанавливаете вещи из AUR.

Пакет AUR уже имеет свои собственные инструкции по сборке и установке - PKGBUILDфайл, который уже копирует необходимые файлы на свои места и даже создает .pkg.tar.gzфайл с ними. Правильный способ построить один makepkg:

makepkg -sirc 

будет строить, устанавливать и убирать.

Что делать, если в вашей загрузке нет PKGBUILD? Тогда вы загрузили не тот файл. Источники пакетов верхнего уровня можно получить по ссылке в крайнем правом окне,

Спасибо. Я не упоминал об этом, но `makepkg` выдал ошибку (` cd: слишком много аргументов`), которая возникла из файла `PKGBUILD` (я заглянул внутрь ...) (и я скачал с` aur.archlinux .org / ... git`) и я решил, что буду следовать GitHub Readme, но теперь я буду стараться делать это «правильно»! :-) TresPaul 7 лет назад 0
@TresPaul: Обычно вызывается путями с пробелами (например, `… / AUR Package /`). Несмотря на то, что большинство pkgbuild'ов защищают от них, большинство Makefile'ов этого не делают - поэтому и ваша ручная `make install` тоже не удалась. grawity 7 лет назад 0
Да, я понял это только сейчас. Видимо, это было проблемой уже в 2004 году: https://bbs.archlinux.org/viewtopic.php?id=2293 TresPaul 7 лет назад 0

Похожие вопросы