⚠️重要铁律:当前SSH会话全程不要关闭!改错配置会直接锁服务器。开一个新窗口测试新端口连通性,确认成功之后,再关闭旧22端口。
vim /etc/ssh/sshd_config
找到 #Port 22
把注释#删掉,改成
Port 33662 #Port 22
先不要直接删掉Port22,先注释保留,确认33662能登录再彻底关闭22。
保存退出 :wq
sshd -t
无任何输出 = 配置语法正确;如果输出报错,回去修改配置文件。
ufw allow 33662/tcp ufw reload
入站规则增加:
协议:TCP
端口:33662
源地址:0.0.0.0/0(或者限定你自己公网IP,更安全)
❗不开放安全组,无论系统怎么改,外部都连不上33662端口。
宝塔面板 → 安全,放行 33662 TCP端口。
systemctl restart ssh #查看状态 systemctl status ssh
ss -tlnp | grep sshd
看到 0.0.0.0:33612 LISTEN 代表已经生效。
ssh root@你的服务器IP -p 33662
✅新端口登录成功,才算完成!
如果新端口连不上,原来的窗口还在,可以排错,不会锁机。
修改/etc/ssh/sshd_config,直接删除或者注释掉Port22
删除防火墙22放行规则
ufw delete allow 22/tcp ufw reload
云安全组删掉22端口入站规则
重启ssh:systemctl restart ssh
Ubuntu新版本ssh.socket抢占端口,修改sshd_config不生效
systemctl stop ssh.socket systemctl disable ssh.socket systemctl restart ssh
ssh.socket会强制绑定22端口,导致你修改sshd_config不生效,宝塔Ubuntu经常遇到这个问题。
登录命令必须带 -p 33662
ssh -p 33662 root@ip
回滚应急(万一33612连不上,旧会话还在)
vim /etc/ssh/sshd_config #恢复 Port 22,注释Port33662 systemctl restart ssh
修改端口只是防扫描,建议同时配置:禁用root密码登录,改用ssh密钥登录。
需要的话我可以给你一份禁用密码登录只允许密钥登录的配置。