Я установил Google-Authenticator как 2FA вместе с аутентификацией по публичному ключу. Мне нужно пропустить 2FA при подключении по SSH с определенного IP-адреса.
Я использую Ubuntu 18.04.
Соответствующий фрагмент из /etc/pam.d/sshd
# PAM configuration for the Secure Shell service
# Standard Un*x authentication.
#@include common-auth
auth [success=1 default=ignore] pam_access.so accessfile=/etc/security/access-local.conf
auth required pam_google_authenticator.so
# Disallow non-root logins when /etc/nologin exists.
account required pam_nologin.so
# Uncomment and edit /etc/security/access.conf if you need to set complex
# access limits that are hard to express in sshd_config.
# account required pam_access.so
# Standard Un*x authorization.
@include common-account
/etc/security/access-local.conf
#localhost doesn't need two step verification
+ : ALL : 192.168.1.20
#All other hosts need two step verification
- : ALL : ALL
/ и т.д. / SSH / sshd_config
PermitRootLogin no
PubkeyAuthentication yes
AuthenticationMethods publickey,keyboard-interactive:pam
/etc/ssh/ssh_known_hosts
PasswordAuthentication no
ChallengeResponseAuthentication yes
UsePAM yes
X11Forwarding no
AcceptEnv LANG LC_*
Subsystem sftp /usr/lib/openssh/sftp-server
Результат
Permission denied (keyboard-interactive).
Я перезапускал sshd после каждого изменения, даже пытался перезагрузить машину.
Прежде чем пометить это как дубликат, я попробовал все эти ответы, ни один из них, похоже, не работает, а также несколько других ресурсов в Интернете:
SSH Google Authenticator: игнорировать / добавить IP-адреса в белый список
Двухфакторная аутентификация SSH только по внешнему адресу
На данный момент я не уверен, что мне не хватает.
Изменить: я изменил вопрос, оригинал был о подключении с локального хоста, который, как указал Майкл-Хэмптон в комментариях, был бесполезен. Спасибо.