出于安全原因,我想限制用户拥有多个 ssh 连接。在终端中,如果我检查 $ last user ,我会发现用户仍然登录。有没有解决方案可以检查用户是否仍然登录而不允许再次登录?
答案1
您无法直接限制ssh
连接。但您可以限制此用户的登录。编辑/etc/security/limits.conf
并添加行:
specificuser hard maxlogins 1
这会将登录次数限制为 1 次specificuser
(如果我们谈论的是ssh
,telnet
或控制台登录,则独立于此)
答案2
在“/etc/ssh/sshd_config文件”中配置“MaxStartups”选项:
MaxStartups 1
然后重启ssh服务。此设置允许每个用户最多一个连接
答案3
如果您对公司的所有用户使用同一个用户(又名root
),您可以在文件的开头添加下一个代码/etc/profile
来通过 IP 地址过滤一个用户:
# Limit logins to one user by IP
NEW_LOGIN=$(last -n 1 | head -n 1 | awk '{print $3}')
CURRENT_LOGINS=$(w -hs | awk '{print $3}' | grep "$NEW_LOGIN" | wc -l)
if [ "$CURRENT_LOGINS" -ge "2" ]; then
echo "Only one login per user/IP is allowed, closing this connection to $NEW_LOGIN"
exit 1
fi