現在、特定のホストからログインするときにパスワードのみを使用し、2FA認証なしでrootユーザーログインを実装しようとしています。これまでのところ、私のsshd_configは次のようになります。
#Port 22
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::
#Authentication
AllowUsers myuser
ChallengeResponseAuthentication yes
AuthenticationMethods keyboard-interactive
#PermitRootLogin no
PasswordAuthentication no
PermitEmptyPasswords no
UsePAM yes
MaxAuthTries 3
KexAlgorithms [email protected],ecdh-sha2-nistp521,ecdh-sha2-nistp384,ecdh-sha2-nistp256,diffie-hellman-group-exchange-sha256
Ciphers [email protected],[email protected],[email protected],aes256-ctr,aes192-ctr,aes128-ctr
MACs [email protected],[email protected],[email protected],hmac-sha2-512,hmac-sha2-256,[email protected]
LogLevel VERBOSE
UseDNS yes
IgnoreRhosts yes
HostbasedAuthentication no
X11Forwarding no
AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES
AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT
AcceptEnv LC_IDENTIFICATION LC_ALL
#Banner /etc/ssh/banner
#SFTP
#Subsystem sftp /usr/lib/ssh/sftp-server -f AUTHPRIV -l INFO
Match Address 100.100.100.100
PermitRootLogin yes
ただし、これは機能せず、引き続きパスワードの入力を求められます。そこで、いくつかの調査の最後に/etc/pam.d/sshdを調整しました(noauthグループを作成し、ここにrootユーザーを追加しました)。
#%PAM-1.0
auth required pam_sepermit.so
auth substack password-auth
auth include postlogin
# Used with polkit to reauthorize users in remote sessions
-auth optional pam_reauthorize.so prepare
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 required pam_namespace.so
session optional pam_keyinit.so force revoke
session include password-auth
session include postlogin
# Used with polkit to reauthorize users in remote sessions
-session optional pam_reauthorize.so prepare
auth [success=done default=ignore] pam_succeed_if.so user ingroup noauth
auth required pam_google_authenticator.so echo_verification_code
しかし、残念ながら何も変わらず、まだrootとしてログインできません。他の人は2FA認証を使用する必要があるため、Google pamモジュールにnullokを追加することはできません。
助けてくれてありがとう :)
ベストアンサー1
私は私の問題を(一種の)解決しました。 pamモジュールにnullokを追加し、/ etc / profileに短いスクリプトを追加して、すべてのユーザーに2FA(ルートを除く)を設定するように強制します(ルートを除く)。 。誰もが興味があれば、スクリプトは次のようになります。
if [ ! -f "$HOME"/.google_authenticator ]; then
if [ ! "$USER" = "root" ]; then
google-authenticator -t -d -f -r 3 -R 30 -W
echo "Please scan the above QR-Code with your 2FA App, or copy the given link. Otherwise, you can no longer log in via SSH"
fi
fi