Ubuntu正确配置SSH是远程管理与云服务器安全运维的基石
对于任何使用Ubuntu系统的开发者或运维工程师而言,SSH(Secure Shell)配置是否规范,直接决定了远程操作的效率与安全边界,结合酷番云多年云服务器运维经验,我们给出的核心建议是:优先使用密钥认证、禁用root密码登录、自定义非默认端口,并在防火墙层面实施最小化放行策略,这套组合方案能抵御绝大多数自动化暴力破解攻击,同时保证管理便捷性。
安装与基础配置:从零到可用的最小闭环
Ubuntu桌面版默认未安装SSH服务端,服务器版则可能已预装openssh-server,执行以下命令完成安装:
sudo apt update sudo apt install -y openssh-server
安装后立即检查服务状态:
sudo systemctl status ssh
若未运行,则通过sudo systemctl start ssh启动,并使用sudo systemctl enable ssh设置开机自启。
基础配置文件位于/etc/ssh/sshd_config,任何修改后必须重启服务生效:
sudo systemctl restart ssh
此时已完成基础安装,局域网内可通过ssh 用户名@IP访问,但生产环境绝不能止步于此,必须进入安全加固阶段。
安全加固:密钥认证与禁用密码登录
密码登录存在暴力破解风险,强烈建议生成RSA或Ed25519密钥对

,生成命令:
ssh-keygen -t ed25519 -C "your_email@example.com"
将公钥部署到服务器:
ssh-copy-id 用户@服务器IP
在服务器端编辑sshd_config,完成以下关键设置:
- 设置
PasswordAuthentication no,彻底禁用密码登录 - 设置
PubkeyAuthentication yes,启用密钥认证 - 设置
PermitRootLogin prohibit-password,禁止root使用密码登录,但允许密钥登录 - 若有多用户,在文件末尾添加
AllowUsers 用户名进行白名单限制
修改后务必先用一个已登录的会话测试新配置,确认能通过密钥正常登录后再退出原会话,避免把自己锁在门外。
端口与防火墙:隐藏服务,降低暴露面
修改默认22端口是降低扫描攻击的最直接手段,编辑sshd_config:
Port 2222
同时配置防火墙,仅放行新端口:
sudo ufw allow 2222/tcp sudo ufw enable
注意:启用防火墙前必须确保已放行新SSH端口,否则会立即断开所有远程连接,酷番云后台的安全组规则也需要同步调整,双重控制入站流量。
酷番云经验案例:从被扫描到零入侵的实战调优
一位使用酷番云2核4G云服务器的用户反馈,其Ubuntu 22.04实例上线仅两天,

/var/log/auth.log中便出现超过3000次来自海外IP的密码暴破尝试,我们协助其执行了以下优化:
- 更换SSH端口至10432,并同步修改酷番云控制台防火墙入站规则
- 安装fail2ban,配置
jail.local实现对连续失败5次的IP自动封禁24小时 - 将
MaxAuthTries设置为3,减少单次连接重试机会 - 启用
ClientAliveInterval 300与ClientAliveCountMax 2,自动清理僵尸连接
优化后的一周内,攻击日志归零,服务响应速度与资源占用均恢复正常。这一案例表明:协议层加固与云平台安全组联动,才能构成纵深防御体系。
常用运维命令与故障排查
日常管理SSH时,掌握以下命令能快速定位问题:
ssh -v 用户@IP:详细输出连接过程,找出手动输入密码时的认证卡点sudo tail -f /var/log/auth.log:实时跟踪登录尝试与错误原因ss -tlnp | grep ssh:确认SSH监听地址与端口是否正常ssh-keygen -R 服务器IP:清除客户端缓存的旧主机密钥,解决“Host key verification failed”问题
若修改端口后无法连接,优先检查云平台安全组、本地防火墙、sshd_config语法三处环节,而不是盲目重启服务器。

独立见解:配置SSH的最佳实践时机
许多用户在系统部署完成后才想起SSH安全,这种“事后补救”行为往往已错过黄金窗口期,建议在Ubuntu系统安装完成后的首次快照时间点,立即完成密钥认证、端口修改与fail2ban部署,此后每一次系统重装或迁移,都应将其视为强制步骤写入运维手册。
相关问答
问:修改SSH端口后,如何保证不会影响现有自动化脚本或CI/CD工具连接?
答:自动化工具通常支持自定义端口参数,对于Ansible,需在hosts文件中指定ansible_port=2222;对于GitLab Runner或Jenkins,需要在SSH连接配置中添加对应端口,如果使用SFTP下载文件,需将连接地址从ssh://user@host改为ssh://user@host:2222,改动发布前,建议先在酷番云测试机上模拟同样环境验证一遍,避免线上断连。
问:若忘记SSH私钥密码或丢失密钥文件,如何恢复服务器访问?
答:酷番云控制台提供VNC终端或救援模式,可绕过SSH直接登录服务器,登录后编辑sshd_config,临时将PasswordAuthentication改为yes并重启SSH,即可使用密码登录,然后重新生成密钥对并部署,确认无误后再次关闭密码登录。密钥文件务必备份至离线介质,或使用酷番云的安全组加白名单策略,仅允许机房出口IP访问,降低找回成本。
图片来源于AI模型,如侵权请联系管理员。作者:酷小编,如若转载,请注明出处:https://www.kufanyun.com/ask/793703.html


评论列表(3条)
读了这篇文章,我深有感触。作者对设置的理解非常深刻,论述也很有逻辑性。内容既有理论深度,又有实践指导意义,确实是一篇值得细细品味的好文章。希望作者能继续创作更多优秀的作品!
读了这篇文章,我深有感触。作者对设置的理解非常深刻,论述也很有逻辑性。内容既有理论深度,又有实践指导意义,确实是一篇值得细细品味的好文章。希望作者能继续创作更多优秀的作品!
@花花7423:这篇文章的内容非常有价值,我从中学习到了很多新的知识和观点。作者的写作风格简洁明了,却又不失深度,让人读起来很舒服。特别是设置部分,给了我很多新的思路。感谢分享这么好的内容!