Linux系统云服务器SSH连接安全配置策略详解
文章分类:售后支持 /
创建时间:2025-09-15
SSH是远程管理Linux系统云服务器的核心工具,但默认配置下存在端口暴露、权限过高、密码易破解等风险。本文结合实际运维经验,从5个关键维度拆解SSH连接安全配置策略,帮你构建更可靠的服务器防护体系。
修改默认端口:让攻击目标"隐形"
SSH服务默认使用22端口,这相当于给攻击者挂了个"此处可攻"的霓虹灯。扫描工具会自动将22端口列为重点目标,暴力破解、漏洞利用等攻击行为往往从这里开始。
具体操作分三步:
1. 编辑配置文件:`vim /etc/ssh/sshd_config`,找到`Port 22`行,修改为非标准端口(如2222);
2. 验证配置:`sshd -t`检查语法是否正确;
3. 重启服务:`systemctl restart sshd`(CentOS/Ubuntu通用)。
建议选择1024-65535之间的端口,避免与其他服务冲突。修改后连接命令调整为`ssh -p 2222 username@服务器IP`。
禁用root直登:权限最小化的关键
直接使用root账号SSH登录相当于把服务器"钥匙"直接交出去——一旦密码泄露,攻击者可瞬间接管系统。更安全的做法是:创建普通用户并通过sudo提权。
操作步骤:
1. 编辑`sshd_config`,将`PermitRootLogin yes`改为`no`;
2. 创建新用户:`useradd -m -s /bin/bash 用户名`,设置密码`passwd 用户名`;
3. 授予sudo权限:`visudo`添加`用户名 ALL=(ALL) NOPASSWD:ALL`(按需调整权限);
4. 重启SSH服务生效。
实际运维中建议定期轮换sudo用户,避免长期使用同一账号。
密钥认证:替代密码的"安全门"
密码认证的弱点在于易被暴力破解(每秒可尝试数千次),而密钥认证通过非对称加密,几乎无法被暴力破解。
本地生成密钥对(客户端操作):
ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa_cloud # 生成4096位RSA密钥
将公钥同步到云服务器:
ssh-copy-id -i ~/.ssh/id_rsa_cloud.pub -p 2222 用户名@服务器IP
服务器端禁用密码认证:编辑`sshd_config`,将`PasswordAuthentication yes`改为`no`,重启服务后仅允许密钥登录。
提示:私钥文件需妥善保管(建议设置密码保护),丢失后无法恢复;生产环境可配合双因素认证(2FA)进一步增强安全。
IP白名单:缩小攻击面的"过滤阀"
仅允许信任IP连接SSH,能大幅减少外部攻击概率。以CentOS的firewalld为例(替代传统iptables):
firewall-cmd --zone=public --add-port=2222/tcp --permanent # 开放新端口
firewall-cmd --zone=public --add-rich-rule="rule family='ipv4' source address='192.168.1.100' port port=2222 protocol=tcp accept" # 添加信任IP
firewall-cmd --reload # 生效配置
建议定期检查白名单,删除不再使用的IP;对动态IP场景可结合DDNS+脚本自动更新。
版本更新:修复漏洞的"补丁包"
SSH服务(openssh)会定期发布安全补丁,例如CVE-2023-25136等漏洞曾导致远程代码执行风险。
更新命令(以Ubuntu为例):
apt update && apt upgrade openssh-server -y # 升级服务
sshd -V | grep "OpenSSH" # 检查当前版本
建议设置自动更新(通过`unattended-upgrades`),或每周固定时间手动检查更新。
做好以上5项配置,Linux系统云服务器的SSH连接安全性将提升90%以上。实际运维中需注意:修改配置前备份`sshd_config`(`cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak`),避免操作失误导致无法连接;重要操作建议同时开启VNC等备用管理通道,确保配置错误时仍可恢复。