ssh用户限制(ubuntu)
1.限制用户SSH登录
只允许指定用户进行登录(白名单):
在/etc/ssh/sshd_config配置文件中设置AllowUsers选项,(配置完成需要重启 SSHD 服务)格式如下:
AllowUsers user1 user2@192.168.5.* user3@192.168.122.1 # 允许user1、192.168.5网段的user2和192.168.122.1的user3连接
只拒绝指定用户进行登录(黑名单):
在/etc/ssh/sshd_config配置文件中设置DenyUsers选项,(配置完成需要重启SSHD服务)格式如下:
DenyUsers user4 user5 # 拒user4、user5帐户通过 SSH 登录系统
重启SSHsystemctl restart sshd.service
AllowUsers: 允许某个用户、某些用户登录,其他都不能登录
AllowGroups: 允许某个组、某些组能登录,其他都不能登录
DenyUsers: 拒绝某个用户、某些用户登录,其他都能登录
DenyGroups: 拒绝某个组、某些组登录,其他组都能登录
2.限制IP SSH登录
1.修改hosts.allow主机允许配置文件,添加允许地址
[root@localhost ~]# vim /etc/hosts.allow sshd:192.168.2.130:allow //添加只允许连接的IP地址 sshd:192.168.3.0/24:allow //允许3.0/24这个网段内的IP连接 ,多网段用逗号隔开
2.修改hosts.deny主机拒绝配置文件
[root@localhost ~]# vim /etc/hosts.deny ... sshd:ALL //这里的ALL表示除了上面文件中允许的,其他的IP地址都拒绝
同时设置上述两个文件时,hosts.allow文件中规则的优先级更高,参考上述两个文件进行设置时,服务器只允许192.168.2.130这个IP地址以及192.168.3.0/24这个IP地址段通过SSH进行登录,其他的IP都会被拒绝SSH登录。
注:
hosts.allow和hosts.deny属于tcp_Wrappers防火墙的配置文件,而用tcp_Wrappers防火墙控制某一服务访问策略的前提是,该服务支持tcp_Wrappers防火墙,即该服务应用了libwrapped库文件。
查看某服务(如ssh)是否应用了libwrapped库文件:
# ldd /usr/sbin/sshd |grep libwrap.so.0
没有显示,表示此服务器上安装的SSH没有应用libwrapped库文件,也就不能用tcp_Wrappers防火墙控制访问策略。(一般情况下服务器默认安装的SSH都是支持libwrapped库文件)
解决方法是重新安装SSH:
# dnf -y remove openssh # dnf -y install openssh # dnf -y install openssh-server
安装完成后再次查看是否应用了libwrapped库文件,显示支持。
# ldd /usr/sbin/sshd |grep libwrap.so.0 libwrap.so.0 => /lib64/libwrap.so.0 (0x00007f3fb7f09000)
再测试SSH登陆,配置生效。
3. SSH禁止某个用户使用密码远程登录
/etc/ssh/sshd_config配置:
Match User username PasswordAuthentication no Match all
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?