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