如何在 Ubuntu 上更改 SSH 端口

LightNode
By LightNode ·

引言

安全外壳协议(SSH)是一种加密网络协议,允许用户通过不安全的网络安全地访问和管理远程系统。默认情况下,SSH 运行在 22 端口。然而,有几个令人信服的理由可能让你想要更改 Ubuntu 系统上的这个默认端口:

  1. 增强安全性: 更改默认 SSH 端口可以帮助保护你的系统免受自动扫描开放 22 端口连接的机器人和脚本的攻击。

  2. 减少噪音: 通过转移到非标准端口,你将显著减少日志中记录的自动登录尝试次数,使监控真正的威胁变得更加容易。

  3. 合规要求: 某些安全策略或合规标准可能要求远程访问协议使用非标准端口。

  4. 互联网服务提供商(ISP)限制: 在某些情况下,ISP 可能会阻止或限制常见端口(如 22 端口)的流量,以防止在住宅连接上托管服务器。

虽然仅仅更改 SSH 端口本身并不是一种全面的安全措施,但它可以成为更广泛安全策略的有效组成部分,通常被称为"通过隐蔽性实现安全"。本教程将指导你完成在 Ubuntu 系统上更改 SSH 端口的过程,帮助你朝着更安全的服务器环境迈出一步。

前提条件

在我们开始更改 SSH 端口的过程之前,请确保你具备以下条件:

  1. Ubuntu 系统: 本指南专门针对 Ubuntu,尽管这些步骤可能适用于其他 Linux 发行版。

  2. Root 或 Sudo 访问权限: 你需要管理员权限来修改系统配置。

  3. 基本终端知识: 需要熟悉基本的 Linux 命令行操作。

  4. SSH 访问: 确保你当前可以通过 SSH 访问你的系统。

  5. 备用连接方法: 拥有一种替代方法(如控制台访问)来访问你的服务器至关重要,以防在过程中出现问题。

更改 SSH 端口的步骤

1. 备份 SSH 配置文件

在修改任何系统配置文件之前,创建备份始终是一个好习惯。要备份你的 SSH 配置文件,请使用以下命令:

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak

此命令创建原始配置文件的副本,并添加 .bak 扩展名。如果出现任何问题,你可以轻松恢复到这个备份。

2. 编辑 SSH 配置文件

现在,让我们打开 SSH 配置文件进行编辑。你可以使用任何你熟悉的文本编辑器。在这个例子中,我们将使用 nano:

sudo nano /etc/ssh/sshd_config

此命令以 root 权限在 nano 文本编辑器中打开 sshd_config 文件。

3. 更改端口号

一旦你在文本编辑器中打开了 sshd_config 文件,找到一行写着 #Port 22。这行通常是被注释掉的(由行首的 # 符号表示)。

要更改 SSH 端口:

  1. 删除 # 以取消注释该行。
  2. 22 更改为你想要的端口号。

例如,如果你想将端口更改为 2222,该行应该看起来像这样:

Port 2222

选择一个介于 1024 和 65535 之间的端口号,以避免与知名服务发生冲突。同时,确保你选择的端口不被系统上的其他服务使用。

4. 保存并退出配置文件

做出更改后:

  • 如果你使用的是 nano,按 Ctrl + X,然后按 Y,最后按 Enter 保存并退出。
  • 如果你使用的是 vim,按 Esc,输入 :wq,然后按 Enter

5. 调整防火墙设置

如果你使用的是 UFW(简单防火墙),这在 Ubuntu 系统上很常见,你需要允许新 SSH 端口的连接。运行这些命令:

sudo ufw allow 2222/tcp
sudo ufw reload

2222 替换为你选择的端口号。

如果你使用的是不同的防火墙,请查阅其文档以了解如何打开新端口。

6. 重启 SSH 服务

要应用更改,请使用此命令重启 SSH 服务:

sudo systemctl restart sshd

这将使用新配置重启 SSH 守护进程。

7. 测试新的 SSH 端口

在关闭当前 SSH 会话之前,测试是否可以使用新端口连接至关重要。打开一个新的终端窗口,并尝试使用以下命令连接:

ssh -p 2222 username@your_server_ip

2222 替换为你的新端口号,username 替换为你的实际用户名,your_server_ip 替换为你服务器的 IP 地址。

如果连接成功,你可以继续关闭旧的 SSH 会话,并在未来的连接中使用新端口。

故障排除

如果在更改 SSH 端口后遇到问题,请考虑以下几点:

  1. 连接被拒绝: 确保新端口在防火墙设置中是开放的。

  2. 端口已被使用: 如果收到端口已被使用的错误,请选择一个不同的端口号。

  3. SSH 服务无法启动: 使用 sudo systemctl status sshd 检查 SSH 服务状态。查看输出中的任何错误消息。

  4. 恢复更改: 如果完全无法连接,请使用备用访问方法(如控制台访问)并恢复备份配置文件:

    sudo cp /etc/ssh/sshd_config.bak /etc/ssh/sshd_config
    sudo systemctl restart sshd
    

在 Ubuntu 上更改 ssh 端口

常见问题解答(FAQ)

1. 更改 SSH 端口真的有必要吗?

虽然不是绝对必要,但更改 SSH 端口可以显著减少自动攻击和日志噪音。然而,它应该是更广泛安全策略的一部分,而不是唯一采取的措施。

2. 我应该选择什么端口号?

选择一个介于 1024 和 65535 之间的端口号,以避免与知名服务发生冲突。避免使用常见的替代 SSH 端口,如 2222 或 22222,因为这些端口通常是更复杂扫描的目标。

3. 更改 SSH 端口会影响我当前的连接吗?

更改端口不会影响你当前的 SSH 会话。但是,所有新的连接都需要使用新的端口号。

4. 更改端口后,我如何连接到 SSH?

使用 -p 标志后跟新的端口号进行连接。例如:

ssh -p 2345 username@your_server_ip

5. 如果需要,我可以将 SSH 端口改回 22 吗?

是的,你可以按照本指南中概述的相同过程将端口改回 22 或任何其他数字。

6. 更改 SSH 端口会干扰 SFTP 或 SCP 吗?

SFTP 和 SCP 使用与 SSH 相同的端口。使用这些服务时,你也需要指定新端口。

7. 使用像 2222 这样的知名替代端口安全吗?

虽然使用 2222 等端口比默认的 22 端口更好,但它们仍然经常被攻击者扫描。最好选择一个更独特的端口号。

8. 如果我忘记了新的 SSH 端口怎么办?

始终将新的 SSH 端口记录在安全的位置。如果你忘记了,可能需要使用替代访问方法(如控制台访问)来检索或重置它。

9. 更改 SSH 端口会影响服务器性能吗?

更改 SSH 端口对服务器性能的影响可以忽略不计。减少自动攻击带来的好处通常超过了任何微小的性能考虑。

10. 我应该通知我的团队或其他用户关于 SSH 端口的更改吗?

是的,通知所有授权用户关于 SSH 端口更改的信息至关重要。向他们提供新的连接详情,以确保持续访问。