如果同一用户仍登录,如何阻止 ssh 用户登录?

如果同一用户仍登录,如何阻止 ssh 用户登录?

出于安全原因,我想限制用户拥有多个 ssh 连接。在终端中,如果我检查 $ last user ,我会发现用户仍然登录。有没有解决方案可以检查用户是否仍然登录而不允许再次登录?

答案1

您无法直接限制ssh连接。但您可以限制此用户的登录。编辑/etc/security/limits.conf并添加行:

specificuser  hard    maxlogins   1

这会将登录次数限制为 1 次specificuser(如果我们谈论的是sshtelnet或控制台登录,则独立于此)

答案2

在“/etc/ssh/sshd_config文件”中配置“MaxStartups”选项:

MaxStartups 1

然后重启ssh服务。此设置允许每个用户最多一个连接

https://man7.org/linux/man-pages/man5/sshd_config.5.html

答案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

相关内容