可以通过SSH连接的所有用户的列表

时间:2013-04-04 03:48:58

标签: linux ubuntu ssh passwd

我最近开始查看我的auth-logs,并惊奇地发现来自中国的机器人试图在这方面强行推进(没有努力)。我全力以赴改变机器人永远不会检查的许多事情,并且更加强硬。

我的问题是:

我正在尝试查找可以通过SSH登录我的服务器的所有用户的列表。我知道/ etc / passwd有一个包含所有用户的列表,但我不知道是否可以登录其中任何一个(1除外)。

我的目标是只有一个用户可以登录,并且该用户拥有真正的强密码。

3 个答案:

答案 0 :(得分:36)

Read man sshd_config了解更多详情,但您可以使用AllowUsers中的/etc/ssh/sshd_config指令来限制可以登录的用户组。

e.g。

AllowUsers boris

意味着只有boris用户才能通过ssh登录。

答案 1 :(得分:26)

/etc/passwd中具有有效shell的任何用户都可以登录。如果要提高安全性,请使用公钥身份验证设置SSH(在执行此操作时Web上有大量信息),在一个用户的~/.ssh/authorized_keys文件中安装公钥,并禁用基于密码的身份验证。这将阻止除一个用户之外的任何人登录,并且将要求用户拥有匹配的私钥。确保私钥具有合适的密码。

为防止僵尸程序试图进入,请在22以外的端口(即3456)上运行SSH。这不会提高安全性,但会阻止脚本小子和机器人在尝试失败的情况下混乱日志。

答案 2 :(得分:7)

/etc/passwd中登录shell设置为交互式shell的任何用户都可以登录。我不认为有一种完全可靠的方法来判断一个程序是否是一个交互式shell;检查它是否在/etc/shells中可能与你能得到的一样好。

其他用户也可以登录,但他们运行的程序不应该允许他们获得对系统的大量访问权限。并且根本不允许登录的用户应该使用/etc/false作为他们的shell - 这将立即将其注销。