К сожалению, с Rutoken S сделать локальную 2FA будет нетривиально. Модули pam_pkcs11/pam_p11, упомянутые в статье https://dev.rutoken.ru/pages/viewpage.a … 0%BE%D0%BC , предполагают строгую аутентификацию на основе асимметричной криптографии, которой нет в токене Rutoken S. Можете ознакомиться с этим объяснением: https://forum.rutoken.ru/post/12017/#p12017
Допускаю, может сработать связка pam_pkcs11/pam_p11 + lsb-cprocsp-pkcs11-* + CryptoPro + Rutoken S, но нами такая комбинация не проверялась.
Для MacOS и FreeBSD есть PAM-модуль pam_smartcard (https://www.opennet.ru/man.shtml?topic=pam_smartcard), с которым Rutoken S мог бы быть использован: он предполагает хранение на смарт-карте файла с логином/паролем, защищенными PIN-кодом.