假设我只想允许 SSH 身份验证,并禁用密码身份验证。
我/etc/ssh/sshd_config
通常会这样做:
PasswordAuthentication no
但在一些答案中人们推荐这样:
PasswordAuthentication no
ChallengeResponseAuthentication no
UsePAM no
它们有什么不同?禁用密码验证的正确方法是什么?
答案1
PasswordAuthentication
严格执行“用户名,密码”聊天,它是更通用的聊天的一个特例KbdInteractiveAuthentication
(对于ChallengeResponseAuthentication
,可以提供任意聊天,包括“用户名,密码”。如果您想禁用任何基于聊天的身份验证,则需要同时禁用两者。
UsePAM
需要为这两者提供系统可插入身份验证模块支持(如果启用,则需要严格以 root 身份运行 sshd)。默认情况下,它是禁用的。