我正在尝试为客户端应用程序确保新的服务器。我想要实现的目标是锁定特定组内用户的 ssh 访问权限。
我已经创建了我的组“remote”,并为该组创建了一个名为“remoteuser”的新用户;如果我 cat /etc/group 我看到
remote:x:823:remoteuser
我/etc/ssh/sshd_config
添加了选项
AllowGroups remote
从sshd_config
手册页来看,这应该将登录限制为仅“远程”组中的用户。
重新启动 sshd 后,我尝试使用另一个用户登录,系统会提示我输入密码。有人可以指出我哪里出错了吗?
我使用的是Ubuntu 16.10
答案1
系统会提示您输入密码,但即使您提供正确的密码,您也不会被授予访问权限。这就是该选项的工作原理。
这是另一个保密级别,服务器不会泄露拥有有效帐户的用户列表。如果不这样做,攻击者可以在几分钟内扫描服务器中的有效用户,并仅攻击现有用户,他可以预期这些用户的密码较弱或有任何其他猜测。
答案2
我将大胆猜测,“AllowGroups”会阻止其他组的用户登录,而不是看到登录提示。
从安全角度来看,这是更明智的做法,否则攻击者可以利用登录提示的存在来暴力分析谁属于该组。
你可能会考虑使用“PasswordAuthentication no”来阻止密码登录