
Я пытаюсь реализовать аутентификацию Yubikey через SSH. Я отредактировал файл /etc/pam.d/sshd следующим образом, и это, кажется, работаетпри локальном подключении( ssh user@localhost
):
#%PAM-1.0
auth required pam_yubico.so id=20682 authfile=/etc/yubikey_mappings debug trace
auth required pam_sepermit.so
auth substack password-auth
auth include postlogin
account required pam_nologin.so
account include password-auth
password include password-auth
# pam_selinux.so close should be the first session rule
session required pam_selinux.so close
session required pam_loginuid.so
# pam_selinux.so open should only be followed by sessions to be executed in the user context
session required pam_selinux.so open env_params
session optional pam_keyinit.so force revoke
session include password-auth
session include postlogin
Однако, когда я пытаюсь подключиться с удаленной машины, она не запрашивает мой ключ. В чем вероятная проблема?
решение1
Общая логика заключается в том, что программа с поддержкой PAM, обрабатывающая входы в оболочку, последовательно попадет в стеки auth
, account
, и session
, но программа может просто пропустить любой из них, если она обрабатывает одну или несколько из этих функций с помощью собственных реализаций.
sshd
поддерживает несколько режимов аутентификации, которые не могут быть делегированы PAM, поскольку они опираются на методы, которые не попадают в область согласования пароля или вызова-ответа. Обычно они основаны на ключах или билетах: ключи ssh, GSSAPI/krb5 и т. д.