在Linux运维管理中,SSH 作为远程登录与管理的核心入口,一旦被暴力破解、越权入侵,轻则数据泄露,重则服务瘫痪、业务中断。尤其对公网开放的 Linux 服务器更是如此。
本文整理一套适合生产环境的 SSH 安全加固方案,覆盖端口、认证、权限、访问控制等关键环节,帮你快速搭建一套企业级安全防护体系。
一、修改默认端口
SSH 默认端口 22 是全网扫描器的 “首选目标”,使用默认端口,几乎等于主动暴露攻击面。
1. 修改 SSH 配置
# 取消注释,修改为自定义端口(建议 10000–65535 之间)Port 22345
注意:修改端口后,务必先在当前窗口保持连接,新开窗口测试登录,确认成功再关闭旧连接,避免被锁在服务器外。后续对配置文件的修改遵循同样的原则。建议在所有更改完成前,始终保持初始登录窗口不要关闭。对于ubuntu 22.10及以后的系统,服务ssh.socket接管了ssh服务器的监听。此时直接修改配置文件无效。此时需要先停用ssh.socket服务:systemctl stop ssh.socketsystemctl disable ssh.socketsystemctl restart sshd
二、禁用 root 直接登录:最小权限原则
root 账号权限无上限。因此需要禁止root远程SSH登录。
1. 禁止 root 登录
useradd adminpasswd adminusermod -aG sudo admin
su - adminmkdir -p ~/.sshchmod 700 ~/.sshtouch
2. Windows 端用 PuTTYgen 生成密钥对- Type of key to generate: RSA
- Number of bits: 2048 及以上(推荐 4096)
- Key passphrase 设置密钥密码(不要与用户密码相同)
- 点击 Save private key,保存
.ppk 私钥(密钥文件,不要泄露)
vi ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
PasswordAuthentication noPubkeyAuthentication yes
- Host Name 填写 IP,Port 填写你修改后的端口;
- 左侧菜单:Connection → SSH → Auth;
- 点击 Browse,选择你保存的
.ppk 私钥; - 返回 Session,保存配置,点击 Open 登录;
如果设置了密钥密码,会提示输入密钥密码。
四、结语
SSH 是 Linux 服务器的 “大门”,一套规范的 SSH 配置,能挡住 90% 以上的自动化入侵。