在Linux系统中,SSH(Secure Shell)是远程管理服务器的唯一安全通道,正确配置SSH不仅决定服务器能否被稳定访问,更直接关系到系统安全防线是否牢固,本文从安装、密钥认证、安全加固、故障排查四个维度,给出可直接落地的配置方案,并结合酷番云服务器实战经验,帮助你一次配置到位,避免踩坑。
安装与基础启动
大多数Linux发行版默认已安装OpenSSH服务端,但精简版系统可能未包含,先确认状态:
# 检查是否安装 ssh -V systemctl status sshd
如果未安装,使用对应包管理器:
- Debian/Ubuntu:
sudo apt update && sudo apt install openssh-server -y - CentOS/RHEL:
sudo yum install openssh-server -y - Fedora:
sudo dnf install openssh-server -y
安装后启动并设置开机自启:
sudo systemctl start sshd sudo systemctl enable sshd
验证端口监听:ss -tlnp | grep :22,看到LISTEN状态即为正常。
核心配置项解析
SSH主配置文件位于/etc/ssh/sshd_config,修改前务必备份,以下是最重要的几项:
端口与监听地址
Port 22 ListenAddress 0.0.0.0
建议将默认22端口改为非标准端口(如2222),可显著减少扫描攻击,修改后需同步更新防火墙规则。
登录权限控制
PermitRootLogin no PasswordAuthentication yes PubkeyAuthentication yes
- 禁止root直接登录

,使用普通用户提权,避免暴力破解直接命中最高权限账户。
- 关闭密码登录,仅保留密钥认证,是提升安全性的最有效手段。
会话与超时
ClientAliveInterval 60ClientAliveCountMax 3MaxSessions 10
防止僵尸连接占用资源,超过180秒无响应自动断开。
登录尝试限制
MaxAuthTries 3 LoginGraceTime 30
每次连接仅允许3次认证尝试,超时30秒强制断开,有效抵御密码爆破。
配置密钥认证(推荐方案)
密钥认证比密码更安全,且支持免密登录,操作步骤如下:
本地生成密钥对
ssh-keygen -t ed25519 -C "your_email"
推荐使用Ed25519算法,比RSA更短更安全,如需兼容旧系统,可改用-t rsa -b 4096。
上传公钥到服务器
ssh-copy-id -i ~/.ssh/id_ed25519.pub user@server_ip
如果修改了端口,需要加-p 端口号,没有ssh-copy-id时,手动追加到~/.ssh/authorized_keys文件。
测试密钥登录
ssh -i ~/.ssh/id_ed25519 user@server_ip
确认密钥能正常登录后,再关闭密码认证,避免把自己锁在外面。
安全加固与防火墙联动
使用Fail2ban动态防护
sudo apt install fail2ban -y
配置/etc/fail2ban/jail.local,监控SSH日志,连续失败5次封禁IP 10分钟。
防火墙只放行必要端口
以UFW为例:

sudo ufw allow 2222/tcp sudo ufw enable
切勿直接ufw allow 22 而不考虑端口修改,云服务器还需在安全组中同步开放新端口,否则外部无法访问。
限制可登录用户
AllowUsers devadmin opsadmin
仅允许指定用户通过SSH登录,其他用户一律拒绝,极大缩小攻击面。
酷番云实战经验案例
在酷番云服务器上部署SSH时,很多用户会遇到一个典型问题:修改端口后无法连接,我们建议的解决流程是:
- 在酷番云控制台的安全组中同时添加新端口和22端口的入站规则。
- 修改
sshd_config中的Port参数,重启sshd服务。 - 本地测试新端口连接成功后,再移除安全组中的22端口规则。
关键点:安全组与系统防火墙是两套独立机制,任何一层未放行都会导致连接失败,酷番云还提供快照备份功能,修改配置前创建快照,万一出错可秒级回滚,避免服务器配置失误带来的业务中断,建议在酷番云上为SSH配置密钥认证后禁用密码登录,同时开启酷番云自带的DDoS基础防护,双管齐下,大幅提升远程管理安全性。
常见故障排查清单
| 现象 | 可能原因 | 解决方案 |
|---|---|---|
| 连接超时 | 安全组未放行端口 | 检查云控制台入方向规则 |
| 认证失败 | 公钥未正确追加 | 检查authorized_keys权限600 |
| 启动失败 | 配置语法错误 | 运行sshd -t验证配置 |
| 密码正确仍拒绝 | 用户被AllowUsers排除 | 检查sshd_config用户限制 |
排查时先看日志:
sudo tail -f /var/log/auth.log # Debian/Ubuntu sudo tail -f /var/log/secure # CentOS/RHEL
相关问答
Q1:修改SSH端口后,如何确保不会把自己锁在服务器外?
答:分三步保障,第一,修改配置前先建立一条持久SSH会话(如使用screen或tmux),确保配置错误时仍有通道可操作,第二,修改后不要重启服务,先用sshd -t验证语法,再执行systemctl reload sshd(reload不会断开已有连接),第三,在防火墙和安全组中先添加新端口,测试新端口连接成功后,再删除旧端口规则,酷番云用户还可以提前创建服务器快照,出问题立即回滚。
Q2:密码登录和密钥登录能否同时开启?
答:可以,但不建议长期同时开启,如果你正在从密码向密钥迁移,可以暂时开启两者,但密钥全部部署完成并验证成功后,应立即关闭PasswordAuthentication,因为只要密码登录开放,服务器就始终暴露在暴力破解风险中,在酷番云上,我们建议使用高强度Ed25519密钥,并定期轮换,配合Fail2ban监控,形成纵深防御。
如果你在配置过程中遇到“Permission denied”或“Connection refused”等报错,欢迎在评论区留言你的系统版本和报错截图,我会逐一帮你分析,你还可以分享自己的SSH安全技巧,与更多运维同行交流实战经验。
图片来源于AI模型,如侵权请联系管理员。作者:酷小编,如若转载,请注明出处:https://www.kufanyun.com/ask/774862.html


评论列表(5条)
这篇文章的内容非常有价值,我从中学习到了很多新的知识和观点。作者的写作风格简洁明了,却又不失深度,让人读起来很舒服。特别是监控部分,给了我很多新的思路。感谢分享这么好的内容!
读了这篇文章,我深有感触。作者对监控的理解非常深刻,论述也很有逻辑性。内容既有理论深度,又有实践指导意义,确实是一篇值得细细品味的好文章。希望作者能继续创作更多优秀的作品!
这篇文章写得非常好,内容丰富,观点清晰,让我受益匪浅。特别是关于监控的部分,分析得很到位,给了我很多新的启发和思考。感谢作者的精心创作和分享,期待看到更多这样高质量的内容!
这篇文章的内容非常有价值,我从中学习到了很多新的知识和观点。作者的写作风格简洁明了,却又不失深度,让人读起来很舒服。特别是监控部分,给了我很多新的思路。感谢分享这么好的内容!
读了这篇文章,我深有感触。作者对监控的理解非常深刻,论述也很有逻辑性。内容既有理论深度,又有实践指导意义,确实是一篇值得细细品味的好文章。希望作者能继续创作更多优秀的作品!