ubuntu修改ssh登录端口

2026-08-12

永远在修改配置之前先开放防火墙新端口,并且不要关闭当前的 SSH 连接,直到测试新端口连接成功为止。

第 1 步:先开放新端口(防火墙)

在修改配置之前,先在防火墙上放行新端口,否则重启 SSH 后你会被立即断开。

# 如果使用 UFW
sudo ufw allow 2222/tcp

# 如果使用 firewalld
sudo firewall-cmd --permanent --add-port=2222/tcp
sudo firewall-cmd --reload

第 2 步:修改 SSH 配置文件

sudo vi /etc/ssh/sshd_config

添加如下配置,将ssh端口设置为2222

Port 2222

⚠️ 如果文件里有多行 Port,只保留一个,其他的注释掉或删除。


第 3 步:重启 SSH 服务

bash

sudo systemctl restart sshd

bash

sudo service ssh restart

第 4 步:测试新端口(千万不要关闭当前 SSH 窗口)

  1. 保持当前连接不要断开,这作为“救命通道”。

  2. 另外打开一个新终端,用新端口尝试连接:

    bash

    ssh -p 2222 用户名@服务器IP
  3. 如果新连接成功,说明一切正常,可以安全退出旧连接。

  4. 如果新连接失败,立即用旧窗口把配置改回 Port 22 并重启 SSH:

    bash

    sudo vi /etc/ssh/sshd_config  # 改回 Port 22
    sudo systemctl restart sshd

第 5 步:修改防火墙,关闭旧端口(可选)

确认新端口正常工作后,可以移除旧端口的防火墙规则:

bash

# UFW 删除旧规则
sudo ufw delete allow 22/tcp

# 或查看规则编号后删除
sudo ufw status numbered
sudo ufw delete 1

🛡️ 额外安全建议

1. 禁止 root 直接登录(强烈推荐)

/etc/ssh/sshd_config 中设置:

bash

PermitRootLogin no

2. 禁用密码登录,改用密钥认证(更安全)

bash

PasswordAuthentication no
PubkeyAuthentication yes

⚠️ 操作前务必确认你已配置好 SSH 公钥,否则会永远无法登录!

3. 修改后完整配置示例

bash

Port 2222
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
AllowUsers 你的用户名

PREV
ubuntu防火墙使用