保护 SSH 服务器安全的 10 个技巧

2025-06-07

保护 SSH 服务器安全的 10 个技巧

安全 SSH 服务器

SSH 协议是一种安全的远程登录方法,用于从一台服务器登录到另一台服务器。它提供了多种强身份验证方案,并通过强加密保护通信的安全性和完整性。它是 Telnet 和文件传输协议 FTP 等其他协议的安全替代方案。

找到 SSH 服务器配置文件 -
我们将要讨论的所有更改都将在 SSH 配置文件中完成。该文件位于 /etc/ssh/ssh_config

使用以下方式打开此配置文件:

sudo nano /etc/ssh/ssh_config

1. 使用除 22 之外的其他端口

22 是 SSH 协议使用的默认端口。您不应使用默认端口,因为它很容易被猜测,并且更容易受到暴力攻击。

要更改默认端口,请更改以下行(这里我们使用端口 221 而不是端口 22)。

端口 221

2. 仅使用 SSH 2 协议

早期的 SSH 1 协议存在许多安全漏洞。因此,您应该使用 SSH 2 而不是 SSH 1。默认情况下,SSH 2 应该设置为 2。如果没有,您可以使用

协议 2

3. 禁用直接 root 登录

允许直接 root 登录是最危险的安全漏洞之一。任何服务器都不应允许通过 SSH 直接 root 登录。

要禁用直接 root 登录,请将 PermitRootLogin 更改为 no,从 yes

允许Root登录否

如果你确实需要以 root 身份登录,你可以先添加一个主用户登录,然后你就可以以 root 用户身份登录

添加用户

用户添加 peter
密码 peter

这是一个例子。我强烈建议使用非常强的密码。

以 peter 用户身份登录后,您可以使用以下命令切换到 root 用户

4. 使用公钥代替密码

登录 SSH 服务器有两种方式:使用密码或公钥/私钥。您应该使用公钥来安全登录 SSH 服务器。您可以使用此链接配置免密码 SSH 登录。

确保基于密钥的登录正常工作后,您可以使用以下方式禁用基于密码的登录

密码验证无

5. 启用双因素身份验证

你应该在你的 SSH 服务器上启用双因素身份验证,以增强其安全性。这样,如果有人试图暴力破解你的服务器,双因素身份验证就能阻止他们。

Google 身份验证器是最值得信赖且使用最广泛的身份验证器之一。您可以使用此链接在您的服务器上启用 Google 身份验证。

使用 SSH 在远程服务器上执行 PHP 文件

6. 禁用空密码

您不应允许使用空密码进行远程登录。如果您允许使用空密码登录,您的服务器更容易受到暴力攻击。

禁用空密码登录设置

允许空密码 否

7. 为 ssh 用户/密钥使用强密码和密码短语

大多数服务器遭受攻击都是因为密码强度太弱。他们使用容易被猜到的密码,比如品牌名称,或者一些通用密码,比如 123456 或 qwerty。弱密码更容易被暴力破解。

您应该使用非常强的密码和密码短语来登录您的 SSH 服务器。

8.配置空闲超时间隔

为了避免无人值守的 SSH 会话,您可以设置空闲超时间隔。

客户端存活间隔 360
ClientAliveCountMax 0

您设置的闲置超时间隔以秒为单位(360 秒 = 6 分钟)。间隔结束后,闲置用户将自动注销。

使用 SSH 在远程服务器上执行 PHP 文件

9.禁用端口转发

黑客可以使用端口转发技术通过 SSH 会话隧道网络连接来登录系统。

要禁用端口转发 -

AllowTcpForwarding 否
X11转发否

10. 将 SSH 登录限制到特定 IP 地址

默认情况下,SSH 会接受来自任何外部 IP 地址的连接。如果您想限制 SSH 仅允许来自特定 IP 地址的连接,可以添加 ListenAddress 行。

例如,如果您只想接受来自 IP 地址 192.168.1.2 的 SSH 连接,您可以添加以下行:

监听地址 192.168.7.2

重新启动 SSH 服务器
对 sshd_config 文件进行任何更改后,请不要忘记重新启动 SSH 服务器。

sudo 服务 ssh 重启

参考 -安全 SSH 服务器

结论

通过进行这些更改,您的服务器将比大多数服务器更安全,并且攻击者不容易进入您的服务器。

文章来源:https://dev.to/sunil/top-10-tips-to-secure-ssh-your-server-2jab
PREV
面向所有 React 开发者的最佳免费 React 仪表盘和资源
NEXT
图片延迟加载