linux ssh服务安全加固需执行五项操作:一、禁用root直接登录;二、修改默认端口;三、启用密钥认证并禁用密码登录;四、限制允许登录的用户或用户组;五、配置fail2ban自动封禁异常ip。

如果您在Linux系统中启用SSH服务,但未进行安全配置,则可能面临暴力破解、未授权访问等风险。以下是针对SSH服务实施安全加固与访问控制的具体操作步骤:
一、禁用root用户直接登录
禁止root账户通过SSH远程直接登录可显著降低系统被提权攻击的风险,强制使用普通用户登录后再切换身份,形成操作审计基础。
1、使用文本编辑器打开SSH主配置文件:sudo nano /etc/ssh/sshd_config
2、查找PermitRootLogin行,将其值修改为no
3、保存文件并退出编辑器
4、重启SSH服务以应用更改:sudo systemctl restart sshd
二、修改默认SSH端口
将SSH监听端口从默认的22更改为非标准端口,可减少自动化扫描工具的命中率,属于基础但有效的隐蔽性防护措施。
1、编辑SSH配置文件:sudo nano /etc/ssh/sshd_config
2、查找Port 22行,在其前添加新端口配置(例如Port 2222),并注释掉原Port 22行
3、确保防火墙放行新端口:sudo ufw allow 2222
4、重启SSH服务:sudo systemctl restart sshd
三、启用密钥认证并禁用密码登录
基于公私钥对的身份验证比密码认证更难被暴力破解,且可完全规避弱口令问题;禁用密码登录则彻底关闭该攻击面。
1、在客户端生成密钥对:ssh-keygen -t ed25519 -C "your_email@example.com"
2、将公钥复制到服务器:ssh-copy-id -i ~/.ssh/id_ed25519.pub user@server_ip -p 2222
3、编辑服务器SSH配置:sudo nano /etc/ssh/sshd_config
4、设置PubkeyAuthentication yes,并修改PasswordAuthentication no
5、重启SSH服务:sudo systemctl restart sshd
四、限制SSH登录用户范围
通过显式指定允许登录的用户或用户组,可防止新增账户意外获得远程访问权限,缩小潜在攻击入口。
1、编辑SSH配置文件:sudo nano /etc/ssh/sshd_config
2、在文件末尾添加允许用户列表:AllowUsers alice bob
3、或按用户组限制:AllowGroups sshusers(需先创建组并添加用户)
4、确保配置无语法错误:sudo sshd -t
5、重启SSH服务:sudo systemctl restart sshd
五、配置Fail2ban自动封禁异常连接
Fail2ban通过实时分析SSH日志,对多次失败登录尝试的IP地址实施临时网络封禁,有效抵御暴力破解行为。
1、安装Fail2ban:sudo apt install fail2ban(Debian/Ubuntu)或sudo yum install epel-release fail2ban(RHEL/CentOS)
2、复制默认配置为本地配置:sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
3、编辑本地配置:sudo nano /etc/fail2ban/jail.local
4、启用SSH监控段落,确认[sshd]下enabled = true
5、启动并启用服务:sudo systemctl start fail2ban && sudo systemctl enable fail2ban










