Linux系统修改ssh远程端口的方法步骤

 更新时间:2025年09月29日 09:14:53   作者:网硕互联的小客服  
修改 Linux 系统的 SSH 远程端口是提高服务器安全性的一种常见做法,通过更改默认端口(22)为其他端口,可以有效减少暴力 破解攻击的风险,以下是详细步骤以及注意事项,需要的朋友可以参考下

1. 修改 SSH 远程端口的步骤

1.1 登录服务器

使用当前的 SSH 端口登录服务器(默认端口为 22):

ssh root@<服务器IP地址> -p 22 

如果是非 root 用户,请使用具有 sudo 权限的账户登录。

1.2 修改 SSH 配置文件

使用文本编辑器打开 sshd_config 文件:

sudo nano /etc/ssh/sshd_config 

或者:

sudo vi /etc/ssh/sshd_config 

找到以下行(如果没有,则手动添加):

#Port 22 
  • 去掉 # 注释符号。
  • 将端口号 22 修改为你想要的端口号(例如 20222222),如下:
Port 2022 

确保以下设置已启用并检查是否存在(防止配置冲突):

AddressFamily inet
PermitRootLogin yes   # 如果允许 root 登录,确保此项为 yes

1.3 修改防火墙规则

更改端口后,需要确保防火墙允许新端口的通信,否则可能导致无法连接。

1.3.1 使用 firewalld(CentOS/RedHat 系统)

添加新端口规则(以 2022 为例):

sudo firewall-cmd --permanent --add-port=2022/tcp 

移除默认端口(22)规则(如果不再需要):

sudo firewall-cmd --permanent --remove-port=22/tcp 

重新加载防火墙规则:

sudo firewall-cmd --reload 

1.3.2 使用 iptables(传统防火墙)

添加新端口规则:

sudo iptables -A INPUT -p tcp --dport 2022 -j ACCEPT 

移除默认端口规则(如果不再需要):

sudo iptables -D INPUT -p tcp --dport 22 -j ACCEPT 

保存规则(确保重启后规则仍生效):

sudo iptables-save > /etc/iptables/rules.v4 

1.3.3 使用 ufw(Ubuntu/Debian 系统)

允许新端口:

sudo ufw allow 2022/tcp 

删除默认端口(如果不再需要):

sudo ufw delete allow 22/tcp 

检查并启用防火墙:

sudo ufw enable 

1.4 重启 SSH 服务

修改完成后,重启 SSH 服务以应用更改:

sudo systemctl restart sshd 

或:

sudo service sshd restart 

如果使用 Ubuntu/Debian,服务名可能是 ssh

sudo systemctl restart ssh 

1.5 测试新的端口

打开新的 SSH 会话,测试是否能通过新端口连接:

ssh root@<服务器IP地址> -p 2022 

注意:在测试新端口成功前,不要关闭当前的 SSH 会话,以免配置错误导致无法连接。

如果测试成功,可以关闭旧的端口会话。

2. 常见问题和解决方法

2.1 修改后无法连接

检查防火墙是否开放了新端口

使用以下命令检查防火墙规则:

sudo firewall-cmd --list-ports       # 适用于 firewalld
sudo ufw status                      # 适用于 ufw

检查 SSH 服务状态

确保 SSH 服务已启动且无错误:

sudo systemctl status sshd 

检查端口占用情况

确保新端口未被其他服务占用:

sudo netstat -tuln | grep 2022 

2.2 忘记新端口号

  • 如果忘记了新端口号,可以通过以下方法查看:
    1. 登录服务器的控制台(通过云服务商提供的 Web 控制台)。
    2. 查看 SSH 配置文件:
cat /etc/ssh/sshd_config | grep Port 

3. 安全性优化建议

除了修改默认 SSH 端口,还可以采取以下措施增强 SSH 安全性:

3.1 禁用密码登录,启用密钥登录

生成 SSH 密钥对(如果尚未生成):

ssh-keygen -t rsa -b 4096 

将公钥上传到服务器:

ssh-copy-id -i ~/.ssh/id_rsa.pub root@<服务器IP> 

修改 SSH 配置文件,禁用密码登录:

sudo nano /etc/ssh/sshd_config 

找到并修改以下项:

PasswordAuthentication no 

重启 SSH 服务:

sudo systemctl restart sshd 

3.2 限制登录 IP

修改防火墙规则,只允许特定 IP 地址访问 SSH:

使用 firewalld

sudo firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='<你的IP>' port port=2022 protocol=tcp accept"

替换 <你的IP> 为你的公网 IP 地址。

重载防火墙:

sudo firewall-cmd --reload 

或编辑 /etc/hosts.allow 文件:

sshd: <你的IP> 

3.3 启用 Fail2ban

安装并配置 Fail2ban,自动封禁多次尝试登录失败的 IP:

sudo yum install epel-release -y
sudo yum install fail2ban -y

启动并配置:

sudo systemctl start fail2ban
sudo systemctl enable fail2ban

4. 总结

修改 SSH 端口是提升服务器安全性的有效措施,但需要注意以下几点:

  1. 修改端口后,确保防火墙规则已更新,并测试新端口连接。
  2. 配合其他安全措施(如密钥登录、IP 限制、Fail2ban)进一步提升安全性。
  3. 在修改前备份 SSH 配置文件,避免因配置错误导致服务器无法访问:
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak 

通过以上步骤,你可以安全地修改 SSH 端口并保护服务器免受暴力 破解的威胁!

到此这篇关于Linux系统修改ssh远程端口的方法步骤的文章就介绍到这了,更多相关Linux修改ssh远程端口内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Linux用户管理与常见权限命令

    Linux用户管理与常见权限命令

    在Linux系统中,用户和组是管理权限和资源访问的基本单元,用户可以属于一个或多个组,组用于集中管理一组用户的权限,文件权限决定了用户或组对文件的访问级别,每个文件或目录都有三个权限集,分别适用于文件所有者(User)、所属组(Group)和其他用户(Others)
    2024-08-08
  • 探索Linux内核:Kconfig的秘密

    探索Linux内核:Kconfig的秘密

    今天小编就为大家分享一篇关于探索Linux内核:Kconfig的秘密,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-10-10
  • php扩展memcached和memcache的安装配置方法

    php扩展memcached和memcache的安装配置方法

    这篇文章主要介绍了php扩展memcached和memcache的安装配置方法,需要的朋友可以参考下
    2014-11-11
  • 用DNSPod和Squid打造自己的CDN(二)

    用DNSPod和Squid打造自己的CDN(二)

    智能DNS可以说是CDN的基础。相信平时大家做网站都会有下面的情况:首页上放两个链接,电信用户请访问主力站点A,网通用户请访问镜像站点B
    2013-04-04
  • Centos 6中编译配置httpd2.4的多种方法详解

    Centos 6中编译配置httpd2.4的多种方法详解

    这篇文章主要给大家介绍了关于在Centos 6中编译配置httpd2.4的多种方法,文中分别利用了分别编译法和一次编译法两种方法实现,文中将实现的方法一步步介绍的非常详细,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-10-10
  • Linux配置免密登录单机和全分布详细教程

    Linux配置免密登录单机和全分布详细教程

    大家好,本篇文章主要讲的是Linux配置免密登录单机和全分布详细教程,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下哦
    2021-12-12
  • win7下VMware虚拟机安装linux7.2上网配置教程

    win7下VMware虚拟机安装linux7.2上网配置教程

    这篇文章主要为大家详细介绍了win7下VMware虚拟机安装linux7.2上网配置教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-09-09
  • Centos7 下安装python3及卸载的教程

    Centos7 下安装python3及卸载的教程

    这篇文章主要介绍了Centos7 下安装python3及卸载的教程,本文图文并茂给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-10-10
  • Linux多块硬盘如何挂载到同一目录

    Linux多块硬盘如何挂载到同一目录

    文章介绍了如何使用LVM(逻辑卷管理)将多块硬盘合并为一个逻辑卷,并详细描述了操作流程,包括创建物理卷、卷组和逻辑卷,以及格式化和挂载逻辑卷
    2025-02-02
  • centos8使用Docker部署Django项目的详细教程

    centos8使用Docker部署Django项目的详细教程

    这篇文章主要介绍了在centos8使用Docker部署Django项目的教程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-05-05

最新评论