禁用 SSH 交互式登录

禁用 SSH 交互式登录

如果用户尝试使用无效用户名登录 ssh shell,我想有条件地禁用 ubuntu 中的交互式登录。

假设我的服务器上有一个用户“bob”,但是用户“fred”不是有效用户。

当 bob 使用以下方式登录时

ssh bob@my_ip_address

我想要一个交互式登录

当有人使用

ssh fred@my_ip_address

我不希望任何交互式登录和登录尝试终止。

在 Ubuntu 中怎样才能做到这一点?

答案1

你真的不想这样做。另一方面,失败2ban几乎可以满足您的要求。您可以将其设置为检测并禁止在一定时间内尝试以无效用户身份登录的 IP。

joet3ch 说得也对,只切换到公钥-私钥登录才是最安全的。

答案2

您是否意识到这样很容易找到有效的用户名?您总是希望任何攻击者对您的系统了解的信息尽可能少!
作为 fail2ban 的替代方案,您还可以使用denyhosts看起来与 fail2ban 完全相同的功能。

答案3

在 中/etc/ssh/sshd_config,你可以使用AllowUsers参数指定哪些用户被允许通过 SSH 登录:

AllowUsers
             This keyword can be followed by a list of user name patterns, separated by spaces.  If specified, login is allowed only for user names that match one of the patterns.  Only
             user names are valid; a numerical user ID is not recognized.  By default, login is allowed for all users.  If the pattern takes the form USER@HOST then USER and HOST are
             separately checked, restricting logins to particular users from particular hosts.  The allow/deny directives are processed in the following order: DenyUsers, AllowUsers,
             DenyGroups, and finally AllowGroups.

             See PATTERNS in ssh_config(5) for more information on patterns.

此外,我真的建议使用 SSH 密钥而不是密码来保护连接。

相关内容