Linux云服务器SSH安全参数优化指南
文章分类:更新公告 /
创建时间:2025-08-06
使用Linux云服务器时,SSH(Secure Shell)连接的安全性直接关系到系统稳定。很多用户可能没意识到,SSH默认配置其实藏着不少安全隐患——弱密码登录、开放标准端口、未限制登录尝试次数等,都可能成为攻击者的突破口。今天就来聊聊如何通过参数优化,给SSH上把“安全锁”。
一、改端口:让攻击扫描更困难
SSH默认使用22号端口,这几乎是攻击者的“必扫目标”。把端口改成非标准值,能大幅降低被针对性攻击的概率。具体操作很简单:
sudo vi /etc/ssh/sshd_config
找到`Port 22`这一行,改成自定义端口(比如2222),保存退出后重启服务:
sudo systemctl restart sshd
注意修改后要用新端口连接服务器,记得在云服务器安全组开放这个新端口。
二、禁root:最小权限原则的实践
直接用root用户SSH登录风险极高——一旦被破解,攻击者就能接管整个系统。正确做法是创建普通用户并赋予sudo权限,再禁用root直接登录。
创建新用户并设置密码:
sudo adduser newuser
为新用户添加sudo权限:
sudo usermod -aG sudo newuser
接着编辑SSH配置文件,找到`PermitRootLogin yes`改为`PermitRootLogin no`,同样重启sshd服务生效。之后用newuser登录,需要提权时输入`sudo`命令即可。
三、密钥认证:替代密码的安全方案
密码再复杂也可能被暴力破解,密钥认证则通过公私钥对实现更安全的身份验证。本地生成4096位RSA密钥对:
ssh-keygen -t rsa -b 4096
生成后会得到`id_rsa`(私钥)和`id_rsa.pub`(公钥),将公钥传到云服务器:
ssh-copy-id newuser@your_server_ip -p 2222
最后在`sshd_config`中禁用密码认证,把`PasswordAuthentication yes`改为`no`,重启服务后就只能用密钥登录了。
四、fail2ban:防御暴力破解的最后防线
即便前面做了优化,仍可能遇到暴力破解尝试。这时候`fail2ban`工具就能派上用场——它会监控登录日志,对多次失败的IP进行临时封禁。
安装并配置fail2ban:
sudo apt-get install fail2ban
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
编辑`jail.local`文件,在`[sshd]`部分设置:
maxretry = 3 # 最大尝试次数
bantime = 3600 # 封禁时间(秒)
保存后重启服务:
sudo systemctl restart fail2ban
这样连续3次登录失败的IP会被封禁1小时,有效遏制暴力破解。
做好这些优化后,Linux云服务器的SSH连接安全性将大幅提升。建议每季度检查一次配置,特别是密钥有效期和fail2ban规则,确保系统防护始终在线。对于需要长期稳定运行的云服务器来说,这些细节优化往往能避免很多潜在风险。