如何在 Ubuntu/Debian 中更改默认 SSH 端口并禁用密码登录 列印

  • 0

如何在 Ubuntu/Debian 中更改默认 SSH 端口并禁用密码登录

本文将介绍如何在 Ubuntu 或 Debian 系统中更改默认的 SSH 端口(22)为其他端口,并关闭密码登录,仅允许通过密钥登录,进一步提升服务器的安全性。


1. 修改 SSH 端口

默认情况下,SSH 监听的是 22 端口,但更改该端口可以降低暴力攻击的可能性。

步骤 1:编辑 SSH 配置文件

使用以下命令打开 SSH 配置文件:

sudo nano /etc/ssh/sshd_config
步骤 2:更改端口号

在文件中找到以下行:

#Port 22
将其修改为您希望的端口号(例如 2022),并去掉注释符号 #:

Port 2022
选择一个大于 1024 且小于 65535 的端口,避免与其他常用端口冲突。

步骤 3:保存并退出编辑器

按 Ctrl + O 保存文件,再按 Ctrl + X 退出。

2. 禁用密码登录

为了强制使用 SSH 密钥登录,我们需要禁用密码登录。

步骤 1:再次编辑 SSH 配置文件


确保在 /etc/ssh/sshd_config 文件中找到以下行:

#PasswordAuthentication yes
将其改为:

PasswordAuthentication no
这将关闭密码登录,仅允许通过密钥进行身份验证。

步骤 2:确保 PubkeyAuthentication 启用

确保 PubkeyAuthentication 设置为 yes,以允许密钥登录:

PubkeyAuthentication yes

3. 重启 SSH 服务

完成上述更改后,需要重启 SSH 服务使配置生效。

sudo systemctl restart ssh
或者:

sudo service ssh restart

4. 配置防火墙(可选)

若您使用 UFW 防火墙(Ubuntu 默认的防火墙),还需要允许新端口通过防火墙。


步骤 1:允许新的 SSH 端口

假设您将端口更改为 2022,运行以下命令:

sudo ufw allow 2022/tcp
步骤 2:禁用 22 端口(仅在确认可以通过新端口成功连接后执行)

sudo ufw deny 22/tcp
步骤 3:重启防火墙

sudo ufw reload
测试新的 SSH 连接
在更改 SSH 配置和防火墙后,建议在另一终端窗口中测试新的 SSH 连接,确保能正常登录。使用以下命令替换 new_port 为您设定的新端口:

ssh -p new_port your_username@your_server_ip
若成功连接,则设置已完成。

总结 通过更改默认 SSH 端口和禁用密码登录,仅允许密钥登录,您的服务器安全性将得到显著提升。确保妥善管理密钥,并定期检查服务器安全状况。


这篇文章有帮助吗?

« 返回