如何在 Linux 中更改 SSH 端口?


简介

安全外壳 (SSH) 是一种协议,它在 Linux 系统中通过不安全的网络提供安全的通道。它通常用于远程登录、文件传输以及安全地在远程机器上执行命令。SSH 是 Linux 系统管理员、开发人员以及远程访问其机器的用户的重要工具。

检查当前 SSH 端口

在继续更改 SSH 端口之前,了解当前使用的端口号非常重要。默认情况下,SSH 服务侦听端口 22。

但是,这是一个众所周知的端口,并且经常成为攻击者的目标。因此,建议将此默认端口号更改为非标准端口号。

使用命令“sshd -T | Grep Port”检查当前端口

要检查您的 SSH 服务当前侦听哪个端口号,您可以在 Linux 终端中使用以下命令:

sshd -T | grep port 

此命令将显示如下输出:

port 22 addressfamily any 

listenaddress 0.0.0.0:22 listenaddress [::]:22 

输出含义的解释

上面的输出显示 SSH 服务当前正在端口 22 上侦听 IPv4 和 IPv6 连接(由“listenaddress 0.0.0.0:22”和“listenaddress [::]:22”指示)。“grep”命令过滤掉除包含“port”一词的所有文本行。第一行(“port 22”)向我们显示服务器的默认 SSH 侦听端口号为 22。

如果您的系统管理员已将其标准值“22”更改为默认 SSH 端口,您将在此输出中看到该新值而不是“22”。记下此信息在为基于 Linux 的系统选择新的非标准端口号时将非常有用。

选择新的端口号

选择新端口号的指南

检查当前 SSH 端口后,下一步是选择一个新的端口号。务必选择一个随机端口号,该端口号不会被 Linux 系统上的其他服务常用。这将有助于防止攻击者轻松找到并利用您的 SSH 服务。

互联网号码分配机构 (IANA) 建议将 49152 到 65535 之间的端口号用于私有或临时端口。此端口范围保留用于动态或私有用途,不应由任何注册服务使用。

所选的新端口号也应该易于记忆,以免以后忘记。确保所选端口号符合组织中实施的任何安全策略。

常用备用端口

虽然可以选择许多可用的端口,但有些端口已成为默认 SSH 端口 (22) 的更受欢迎的替代品。其中一个替代端口是端口 2222,由于易于记忆并在 ISP 和防火墙中注册,因此随着时间的推移而越来越受欢迎。另一个常用的替代端口是端口 443,HTTPS 流量使用该端口。

由于大多数防火墙允许 HTTPS 流量无检查地通过,因此使用此备用 SSH 端口可以帮助避免网络管理员的检测,否则这些管理员可能会阻止使用非标准端口。其他常用的备用端口包括 992、2020 和 8080。

但是,需要注意的是,虽然这些是更改 Linux 系统中 SSH 端口的不错选择,但它们在攻击者中仍然广为人知,这些攻击者可能会在尝试找到易受攻击的系统时扫描这些端口。因此,建议您选择唯一的未使用的较高范围端口(如前面提到的 49152-65535 之间的端口),以获得最大的安全优势。

编辑 SSH 配置文件

选择新的端口号后,下一步是编辑 sshd_config 文件。此配置文件确定 SSH 服务器的行为方式,并允许您自定义其设置。

要访问该文件,请在 Linux 机器上打开任何文本编辑器,然后导航到 /etc/ssh/sshd_config。您可以使用任何喜欢的文本编辑器,但在命令行环境中,nano 和 vim 是常用的编辑器。

$ sudo vim /etc/ssh/sshd_config

使用文本编辑器修改 sshd_config 文件

在您选择的文本编辑器中打开 sshd_config 文件,找到显示“#Port 22”的行。“#”符号用于注释掉行,因此请将其从此行中删除,并将“22”更改为您选择的端口号。

#Port 22

Port 22

通过按 Ctrl + O 或使用编辑器的“保存”功能保存对 sshd_config 文件所做的更改。然后通过按 Ctrl + X 退出编辑器。

需要进行的更改说明

在配置文件中需要进行的唯一更改是修改前面提到的“Port”设置。除非您知道自己在做什么,否则不要进行任何其他更改,因为它们可能会影响 SSH 功能。

值得注意的是,如果您出于安全原因更改 SSH 端口号,建议您还通过在此同一配置文件中设置“PermitRootLogin no”来禁用通过 SSH 的 root 登录。通过使用新的端口号和其他推荐的安全设置修改此配置文件,您可以显着降低对不安全端口的攻击的脆弱性,同时仍允许通过另一个安全通道进行授权访问。

重新启动 SSH 服务

编辑 sshd_config 文件后,是时候重新启动 SSH 服务以应用更改了。您可以在终端上使用以下命令执行此操作:

systemctl restart sshd

此命令将停止然后重新启动 SSH 服务,并使用新的配置。如果在此阶段遇到任何错误,可能是由于配置文件存在问题。

使用命令行检查新端口是否正常工作

要检查新端口是否正常工作,可以使用以下命令:

ssh -p [new_port_number] [username]@[ip_address]

将“[new_port_number]”替换为您选择的端口号,“[username]”替换为您的用户名,“[ip_address]”替换为服务器的 IP 地址。如果一切配置正确,您应该能够使用新端口上的 SSH 连接到服务器。需要注意的是,更改默认 SSH 端口并不能使您的系统完全安全。

但是,它确实通过使攻击者更难以通过常用端口攻击您的系统来增加额外的安全层。始终建议实施多层安全措施以保护存储在服务器上的敏感信息。

结论

更改默认 SSH 端口是您可以采取以保护 Linux 系统安全的重要步骤。通过使用非标准端口,您可以使攻击者更难以找到您的服务器并对其发起攻击。虽然这不是万无一失的解决方案,不应是采取的唯一安全措施,但它是保护系统安全的重要步骤。

还必须记住,仅更改 SSH 端口并不能使您的系统完全安全。您还应该启用其他安全措施,例如配置防火墙、禁用 root 登录以及使用基于密钥的身份验证。

通过遵循本文中概述的步骤,您可以轻松更改 Linux 系统上的默认 SSH 端口并提高其整体安全性。请注意安全!

更新于:2023年8月24日

384 次查看

开启你的职业生涯

通过完成课程获得认证

开始学习
广告