我在配置 ssh 服务器时遇到了困难。情况如下。root 用户是唯一使用 google F2A (PAM) 的用户,受限用户只能通过密码连接,其余用户无需密码(因为他们没有密码),只能使用公钥连接。但是我需要创建一个用户(其他用户),该用户必须能够使用密码或公钥登录。但不能同时使用两者,也不能不使用 F2A。这是我拥有的 sshd_config 文件。此 sshd 服务的目的是用作跳转服务器(SSH 隧道)。
Include /etc/ssh/sshd_config.d/*.conf
PermitRootLogin yes
UsePAM yes
X11Forwarding yes
PrintMotd no
AcceptEnv LANG LC_*
Subsystem sftp /usr/lib/openssh/sftp-server
PasswordAuthentication yes
ChallengeResponseAuthentication yes
PermitTunnel yes
AllowTcpForwarding yes
LogLevel VERBOSE
SyslogFacility AUTH
Match User root
AuthenticationMethods keyboard-interactive:pam
Match User restricted
AuthenticationMethods password
Match User otheruser
AuthenticationMethods publickey,password
我该如何继续?
答案1
我找到了一个解决方法,在 pam.d/sshd 文件中,在 auth required pam_google_authenticator.so 行末尾添加“nullok”。我还删除了:
Match User otheruser
AuthenticationMethods publickey,password
使用此配置,用户可以使用公钥或密码登录。Root 只能使用密码和 Match User root 块定义的双因素身份验证 (keyboard-interactive:pam) 登录。受限用户只能使用密码访问。