服务器与大带宽专家 · 持牌IDC/CDN/ISP服务商
简米科技官网JIANMI TECH
资讯 2026-08-26 更新于 2026-08-26 简米科技 4,153 字 10 分钟阅读

如何修改默认远程端口并禁用密码登录,服务器安全加固步骤?

导读把SSH默认端口从22改成其他数值,同时关闭密码登录只保留密钥认证,是当前成本最低、效果最直接的服务器防暴力破解手段,这两步做完,绝大多数自动化扫描和撞库攻击基本就跟你没关系了,很多朋友买完云服务器第一件事就是装环境,觉得安全加固可以往后放,结果跑不了几天,一看登录日志,满屏都是来自世界各地IP的failed……

把SSH默认端口从22改成其他数值,同时关闭密码登录只保留密钥认证,是当前成本最低、效果最直接的服务器防暴力破解手段,这两步做完,绝大多数自动化扫描和撞库攻击基本就跟你没关系了。

很多朋友买完云服务器第一件事就是装环境,觉得安全加固可以往后放,结果跑不了几天,一看登录日志,满屏都是来自世界各地IP的failed password,说实话,这年头还在扫22端口的脚本,一天能扫你几万次,纯粹是概率游戏,扫到一个弱口令算一个,与其每天提心吊胆看日志,不如花十分钟把基础加固做了。

为什么优先改端口和禁用密码登录

服务器被入侵的路径就那么几条,其中暴力破解远程登录凭证是相当一部分攻击者最常用的入口,行业共识认为,互联网上每天针对默认22端口的扫描和尝试登录次数,远超其他非标准端口,这背后的逻辑很简单:攻击者不会针对你个人,他们写脚本全网扫,扫到开放22端口的主机就尝试弱口令字典,root/admin/123456这些组合挨个试。

改端口不是让你安全到无敌,而是让你从“被海量脚本无差别覆盖”变成“基本消失在自动化攻击视野里”,试想一下,扫描器扫到你的服务器发现22端口不通,绝大多数脚本会直接跳过,转去扫下一个目标,这就好比你家门锁从普通弹子锁换成了指纹锁,小偷撬锁的成本上去了,自然就换一家偷。

禁用密码登录就更关键了,密码这东西,只要存在传输和验证环节,就有被截获或被猜测的可能,而密钥登录基于非对称加密,私钥不出本地,公钥随便发,安全性完全不在一个量级。改了端口+禁密码登录,这两步做完,你的服务器基本就从攻击者的“公开靶场”名单里划掉了。

修改linux默认ssh端口的具体操作

这里以最常用的CentOS和Ubuntu系统为例,操作路径基本一致,核心是改sshd配置文件,然后重启服务,注意,云服务器的话,改完系统防火墙还要记得放行新端口,不然自己把自己锁外面。

第一步:编辑sshd_config文件

先登录服务器,用root权限编辑SSH配置文件:

vim /etc/ssh/sshd_config

找到#Port 22这一行,去掉注释,把22改成你想要的新端口,端口范围是1-65535,但建议选10000以上的高位端口,避开常见服务的默认端口,比如Port 22026,既好记又不那么显眼。

第二步:防火墙和SELinux放行新端口

这一步最容易翻车,很多朋友改完配置重启sshd服务,结果直接连不上了,原因就是防火墙没放行新端口。

如何修改默认远程端口并禁用密码登录,服务器安全加固步骤?

CentOS系统用firewalld的话:

firewall-cmd --permanent --add-port=22026/tcp
firewall-cmd --reload

Ubuntu系统用ufw的话:

sudo ufw allow 22026/tcp
sudo ufw reload

CentOS如果开了SELinux,还要执行这条命令,不然SELinux会拦截新端口的连接:

semanage port -a -t ssh_port_t -p tcp 22026

第三步:重启sshd服务并验证

systemctl restart sshd

先别关当前连接,另开一个终端窗口,用新端口尝试连接:

ssh -p 22026 root@你的服务器IP

确认新端口能登录了,再回头处理旧端口,此时22端口理论上已经不再监听,但为了保险起见,可以在防火墙里把22端口也关掉,双保险。

禁用root密码登录前先配置好密钥认证

直接关密码登录是结果,但前提是密钥认证已经配置到位,很多人跳过密钥配置直接改PasswordAuthentication no,结果就是把所有人都锁在门外,顺序千万别搞反。

本地生成密钥对

在自己电脑上执行,不是在服务器上:

ssh-keygen -t rsa -b 4096 -C "你的邮箱或备注"

一路回车,默认生成在~/.ssh/目录下,id_rsa是私钥,id_rsa.pub是公钥。私钥文件权限必须改成600,太开放的话SSH客户端会直接拒绝使用:

chmod 600 ~/.ssh/id_rsa

把公钥上传到服务器

用ssh-copy-id一键搞定,它会自动把公钥追加到服务器的~/.ssh/authorized_keys文件里:

ssh-copy-id -p 22026 root@你的服务器IP

没有ssh-copy-id的话手动操作也行,把公钥内容复制到服务器的/root/.ssh/authorized_keys文件里,一行一条,然后确保~/.ssh目录权限是700,authorized_keys文件权限是600。

验证密钥登录再关密码

先在当前终端测试密钥登录是否生效,确认能连上了,再编辑sshd_config:

PasswordAuthentication no

注意,还要确认ChallengeResponseAuthenticationUsePAM这两项没在跟你对着干,有些系统上PAM模块会覆盖sshd配置,保险起见把ChallengeResponseAuthentication no

如何修改默认远程端口并禁用密码登录,服务器安全加固步骤?

也加上。

改完再重启sshd服务,然后新开窗口测试密钥登录,测试通过后这个加固才算完成,以后你的服务器就只有持有私钥的人才能进,密码这个环节直接从攻击面里消失了。

不同场景下的加固方案对比

基础加固做完,有些朋友可能会问,这样就够了吗?说实话,够不够取决于你的业务场景,这里把几种常见场景的加固强度做个对比,大家按需取用:

场景 推荐方案 加固等级
个人博客/测试机 改端口+密钥登录 基础版,够用
公司官网/业务系统 改端口+密钥+堡垒机运维管理 进阶版,推荐
金融/政务等高合规要求 改端口+密钥+堡垒机+定期巡检+入侵检测 高配版

堡垒机这个东西,说白了就是跳板机,所有运维人员先登录堡垒机,再由堡垒机跳转到服务器,服务器上不直接暴露公网SSH端口,如果你在帮公司管理多台服务器,建一台堡垒机集中管控,比每台机器单独配防火墙策略省心得多。

改完端口后,建议把MaxAuthTries设小一点,比如3次,防止有人对着你的新端口继续暴力试。ClientAliveIntervalClientAliveCountMax也顺手设一下,空闲连接自动断开,避免一堆僵尸会话挂在服务器上。

加固后容易被忽略的验证和排错细节

改配置这事,最怕的就是改完连不上,这里列几个最容易翻车的细节,提前排掉雷:

  • 云服务商的安全组:在简米云、酷番云、华为云这些平台买的服务器的防火墙之外,还有一层安全组规则,安全组没放行新端口,系统防火墙放行也没用,登录云控制台,找到实例的安全组,添加入方向规则,TCP端口填你改的那个数,来源IP建议锁死你的办公网IP,别写0.0.0.0/0。
  • sshd服务没起来:改完配置重启服务后,用systemctl status sshd看下状态,active running才行。
  • 测试时没带-p参数:新端口不是默认22,连接时必须要加-p 新端口,很多新手第一次就连不上,问题出在这。
  • 公私钥权限不对:服务器上.ssh目录700,authorized_keys文件600,多一个组的读写权限都可能被拒绝。

这几条检查完,基本就稳了,如果连不上,不要慌,去云控制台用VNC或管理终端登录,把配置改回来就行。

如何修改默认远程端口并禁用密码登录,服务器安全加固步骤?

更进一步的加固方向

基础的两步走完,可以再往深走一步,比如安装fail2ban,它干的事是监控登录日志,发现同一个IP连续失败几次就封禁一段时间,和改端口是互补关系改端口是减少暴露面,fail2ban是防御已经暴露的那部分。

还有一点,如果服务器上跑着Web服务、数据库这些,SSH加固只是最基础的一环。安全这东西是个体系,端口和密码是第一道门,但绝不是最后一道门。

定期看一下/var/log/secure(CentOS)或/var/log/auth.log(Ubuntu)里的登录记录,发现异常IP及时处理,这个习惯比任何安全软件都管用。

修改默认远程端口后常见问题解答

Q:修改ssh端口会影响网站访问吗?

不影响,SSH端口只管远程登录通道,和Web服务用的80/443端口互不干扰,网站访客走的是Web服务端口,完全感知不到你改了SSH端口,唯一要注意的是,如果你有自动化脚本、定时任务需要连服务器,记得把脚本里的连接端口同步改掉。

Q:禁用密码登录后,如果私钥文件丢了怎么办?

这是最尴尬的场景,私钥丢了,密钥登录进不去,密码登录又关了,基本只能靠云控制台的VNC或管理终端登录,所以建议生成密钥对后,私钥多备份几个地方,比如U盘、加密网盘,日常使用时私钥放在常用设备上,不要在公共电脑上导入私钥,如果私钥真的找不回来了,VNC登录服务器,重新生成一对密钥替换掉authorized_keys里的旧公钥,还能救回来。

Q:Windows服务器也需要做同样的加固吗?

Windows的远程桌面(RDP)默认走3389端口,攻击逻辑和Linux的SSH一样,Windows上改端口需要改注册表,操作路径是HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTerminal ServerWinStationsRDP-Tcp,把PortNumber改成十进制的新端口值,然后重启服务器,同时建议开启“仅允许使用网络级别身份验证的远程桌面连接”,密码策略设置得复杂一些,Windows没有原生密钥登录,但可以搭配Remote Desktop Manager这类工具管理访问凭证,效果类似。

服务器的安全加固是一场持续的攻防博弈,修改默认远程端口和禁用密码登录是性价比最高的第一步,做完这两步,你的服务器已经从大多数自动化攻击的扫描列表里消失了,剩下的,就是保持习惯,定期巡检,别让安全意识睡大觉。

分享本文
本文为 简米科技官网 原创,已由运维技术专家审核。转载请注明来源:原文链接
售前咨询 服务热线 售后 邮箱