我们目前在 SSH 服务器上使用双因素身份验证,因此在 sshd_config 中我们有“RequiredAuthentications2 publickey,keyboard-interactive”(publickey 为密钥,keyboard-interactive 为通过 PAM 处理的双因素身份验证)
为了让我们的开发人员更轻松,我们想要禁用 sftp 子系统的 2factor 要求。
我已经搜索过类似“Match subset sftp”之类的东西(比如可用的“Match Group”,之后我只能定义“RequiredAuthentications2 publickey”,但似乎这是不可能的。
我研究的另一件事是检查 PAM,看看是否有可能为 sftp 子系统定义一个单独的配置(这似乎不可行,pam 的服务始终是“ssh”)或者我是否可以在我的 sshd pam 配置中包含一些内容,例如“auth [success=1 default=ignore] pam_succeed_if.so quiet subsets in sftp”
有什么提示吗?(除了为 sftp 设置另一个 sshd 实例并使用不同的设置)
答案1
users
我不会尝试使用组规则来放松安全性,而是使用默认安全性并使用组规则来加强安全性。以下是需要 2 因素身份验证但 不需要的示例sftp-users
。
# Only these groups can connect
AllowGroups users sftp-users
Match Group users
RequiredAuthenticatios2 publickey,keyboard-interactive
Match Group sftp-users
ChrootDirectory %h
X11Forwarding no
AllowTcpForwarding no
我在 Ubuntu 系统上成功实现了这个原型,我指定的是 sshd_config 手册页,AuthenticationMethods
而不是CentOS 系统手册页中的RequiredAuthenticatios1
and RequiredAuthenticatios2
。等效行是
AuthenticationMethods publickey,password