CentOS 系统 SSH 远程端口更改指南

CentOS 系统 SSH 远程端口更改指南

发布时间:2024-10-03 14:12:54

步骤 1:选择新端口号

  • 选择一个介于 1024 和 65535 之间的端口号。
  • 避免使用已知服务的端口。

步骤 2:编辑 ssh 配置文件

  1. 打开 ssh 配置文件:
     
    sudo vi /etc/ssh/sshd_config
  2. 找到 #port 22 这一行。
  3. 将其更改为 port <您的新端口号>(例如,port 2222)。
  4. 删除行首的 # 以取消注释。
  5. 保存并退出文件(在 vi 中:按 esc,输入 :wq,然后按 enter)。

步骤 3:配置 selinux

centos 默认启用 selinux,需要允许新的 ssh 端口:

 
sudo semanage port -a -t ssh_port_t -p tcp <您的新端口号>

如果 semanage 命令不可用,安装它:

 
sudo yum install policycoreutils-python

步骤 4:配置防火墙

centos 7 及更高版本使用 firewalld:

 
sudo firewall-cmd --permanent --add-port=<您的新端口号>/tcp 
sudo firewall-cmd --permanent --remove-service=ssh 
sudo firewall-cmd --reload

对于使用 iptables 的旧版本 centos:

 
sudo iptables -a input -p tcp --dport <您的新端口号> -j accept 
sudo iptables -d input -p tcp --dport 22 -j accept 
sudo service iptables save

步骤 5:重启 ssh 服务

 
sudo systemctl restart sshd

步骤 6:测试新配置

  1. 不要关闭当前的 ssh 会话。
  2. 在新的终端窗口中,尝试使用新端口连接:
     
    ssh -p <您的新端口号> 用户名@您的服务器ip

步骤 7:更新客户端配置

更新您本地的 ssh 配置文件或 ssh 客户端设置以使用新端口。

步骤 8:禁用旧端口(可选)

确认新端口正常工作后,您可以完全关闭 22 端口:

对于 firewalld:

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

对于 iptables:

 
sudo iptables -d input -p tcp --dport 22 -j accept 
sudo service iptables save

重要注意事项:

  • 在整个过程中保持至少一个活动的 ssh 会话。
  • 如果您使用的是云服务提供商,可能还需要在其控制面板中更新安全组设置。
  • 更新任何可能使用 ssh 的自动化脚本或服务。
  • 感谢:05互联