新闻资讯

掌握最新资讯,了解关于我们的最新动态!
您当前位置首页 > 新闻资讯 > 服务器问题

Linux服务器SSH安全加固配置指南

更新时间:2026-06-02 01:37

SSH是管理Linux服务器最重要的通道,但也是最容易被攻击的目标。据统计,一台暴露在公网上的服务器每天可能遭受数百次暴力破解尝试。本文介绍Linux系统下SSH安全加固的最佳实践。

1. 修改默认端口

将SSH默认的22端口修改为其他端口,可以规避绝大多数自动化扫描攻击:

code
vim /etc/ssh/sshd_config

# 找到 #Port 22 一行,修改为:
Port 2222  # 建议使用1024以上的端口

修改后重启SSH服务:systemctl restart sshd

注意:务必先在防火墙放行新端口后再退出当前SSH会话,否则会把自己锁在门外!

2. 禁用root直接登录

root用户拥有最高权限,禁用其直接登录可以减少攻击面:

code
# 先创建一个普通用户
useradd admin && passwd admin
usermod -aG wheel admin  # CentOS
usermod -aG sudo admin   # Ubuntu

# 编辑SSH配置
vim /etc/ssh/sshd_config
PermitRootLogin no  # 禁止root直接登录

3. 配置密钥登录并禁用密码登录

code
# 在本地生成密钥对
ssh-keygen -t ed25519 -C "your_email@example.com"

# 将公钥复制到服务器
ssh-copy-id -i ~/.ssh/id_ed25519.pub admin@服务器IP -p 端口

确认密钥登录成功后,修改SSH配置禁用密码登录:PasswordAuthentication no

4. 配置Fail2ban防暴力破解

code
# 安装Fail2ban
yum install -y epel-release && yum install -y fail2ban  # CentOS
apt install -y fail2ban  # Ubuntu

# 创建配置文件
cat > /etc/fail2ban/jail.local << 'EOF'
[sshd]
enabled = true
port = 2222
filter = sshd
logpath = /var/log/secure
maxretry = 3
bantime = 3600
findtime = 600
EOF

systemctl start fail2ban && systemctl enable fail2ban

5. 其他安全建议

  • 设置登录超时:ClientAliveInterval 300 和 ClientAliveCountMax 0
  • 限制登录用户:AllowUsers admin user1 user2
  • 使用ed25519算法替代RSA,安全性更高
  • 定期审计登录日志:lastb 查看失败登录记录

六、SSH密钥管理与轮换

定期轮换SSH密钥是安全最佳实践。建立密钥生命周期管理机制,包括生成、分发、使用、撤销和销毁。推荐使用ssh-keygen生成ED25519密钥对(性能优于RSA),配合ssh-agent管理私钥。

七、SSH堡垒机架构

code
# 堡垒机跳板配置 - /etc/ssh/sshd_config
Match User jumpserver
    AllowTcpForwarding yes
    X11Forwarding no
    PermitTTY no
    ForceCommand /usr/sbin/ssh-audit-wrapper

八、SSH安全审计

通过审计登录日志(/var/log/auth.log或secure)和配置auditd监控SSH相关操作。使用fail2ban配置SSH保护规则,对多次认证失败的IP进行临时封禁,配合白名单机制确保管理员正常访问。

安全合格的云服务,让您的业务轻松上云!

立即选购