如何设置CentOS SSH安全?

2025-09-16 22:09:46 149
魁首哥

近期有些网友想要了解如何设置CentOS SSH安全的相关情况,小编通过整理给您分析,根据自身经验分享如何设置CentOS SSH安全?有关知识。

在管理服务器时,SSH(Secure Shell)是日常运维中最常用的远程连接工具,若未正确配置,它也可能成为恶意攻击者入侵系统的突破口,为确保您的CentOS服务器安全可靠,采取必要的SSH安全措施至关重要。

修改默认端口

CentOS系统默认的SSH端口是22,这几乎是尽人皆知的信息,修改默认端口是阻挡自动化扫描工具的第一道有效防线。

打开SSH主配置文件:

sudo vi /etc/ssh/sshd_config

找到 #Port 22 这一行,取消注释并将数字更改为一个大于1024的非常用端口,Port 58234,保存后重启SSH服务:sudo systemctl restart sshd

重要提示:修改端口后,务必确保防火墙(如firewalld或iptables)已放行新端口,否则会无法连接,建议先在现有连接中测试新端口配置是否正确,避免被锁在服务器之外。

禁止root用户直接登录

允许root用户直接通过SSH登录是极大的安全隐患,一旦攻击者破解密码,将直接获得最高权限。

在同一个配置文件 /etc/ssh/sshd_config 中,找到 #PermitRootLogin yes,将其修改为 PermitRootLogin no,重启SSH服务后,攻击者将无法直接以root身份登录,日常操作应使用普通用户登录,必要时再通过 sudo 命令切换权限,这增加了攻击门槛,也便于审计操作日志。

使用密钥认证替代密码登录

密码认证存在被暴力破解的风险,更安全的方法是使用公钥密钥对进行认证。

在客户端机器生成密钥对:

ssh-keygen -t rsa -b 4096

将生成的公钥(id_rsa.pub)上传至服务器的对应用户目录下的 ~/.ssh/authorized_keys 文件中,并设置正确的权限:

chmod 700 ~/.sshchmod 600 ~/.ssh/authorized_keys

在SSH配置文件中将 PasswordAuthentication yes 改为 PasswordAuthentication no,彻底禁用密码登录,请务必在禁用密码前测试密钥登录是否成功。

限制SSH访问来源

通过配置防火墙,可以限制只有可信IP地址才能连接到服务器的SSH端口,使用firewalld仅允许办公室或家的IP访问:

sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="你的可信IP" port protocol="tcp" port="你的SSH端口" accept'sudo firewall-cmd --reload

此举可极大减少暴露在公网上的攻击面。

启用附加验证模块

对于安全性要求极高的环境,可以考虑启用双因子认证(2FA),Google Authenticator等PAM模块能提供这种支持,用户登录时不仅需要密钥,还需输入一次性的动态验证码,即使密钥泄露,账户依然安全。

其他加固建议

保持系统与软件更新是安全的基础,定期运行 yum updatednf update 获取最新安全补丁。

关注并分析认证日志 /var/log/secure,监控异常登录尝试,工具如fail2ban可以自动封锁多次尝试失败的可疑IP,有效抵御暴力破解。

安全是一个持续的过程,而非一劳永逸的设置,上述措施能显著提升CentOS服务器的SSH连接安全性,但务必根据实际业务环境和风险承受能力进行配置和调整,每一次谨慎的设置,都是对数据资产多一分的负责。

分享
海报
149
上一篇:如何在CentOS上使用as86? 下一篇:CentOS 6.4 如何设计分区方案?

忘记密码?

图形验证码