如果用户尝试使用无效用户名登录 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 密钥而不是密码来保护连接。