要限制 CentOS 上的 SSH 访问,您可以采取以下措施:
更改默认 SSH 端口: 编辑 /etc/ssh/sshd_config 文件,找到 #Port 22 这一行,取消注释并更改端口号。例如,将其更改为 Port 2222。然后重启 SSH 服务:
sudo systemctl restart sshd 禁用 root 登录: 在 /etc/ssh/sshd_config 文件中,找到 PermitRootLogin 这一行,将其值更改为 no。这将禁止使用 root 用户登录。
PermitRootLogin no 使用公钥认证: 在客户端生成 SSH 密钥对(如果尚未生成),然后将公钥添加到服务器上的 ~/.ssh/authorized_keys 文件中。在 /etc/ssh/sshd_config 文件中,确保以下设置已启用:
PubkeyAuthentication yes PasswordAuthentication no 这将禁用密码登录,只允许使用密钥对进行身份验证。
限制允许访问的用户: 在 /etc/ssh/sshd_config 文件中,使用 AllowUsers 设置允许访问的用户。例如:
AllowUsers user1 user2 这将仅允许 user1 和 user2 用户通过 SSH 访问服务器。
使用防火墙限制 IP 地址访问: 如果您使用的是 firewalld,可以添加一个规则以仅允许特定 IP 地址访问 SSH 端口。例如,要仅允许 IP 地址为 192.168.1.100 的用户访问 SSH,请运行以下命令:
sudo firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.100" port protocol="tcp" port="2222" accept' sudo firewall-cmd --reload 请注意,这些方法并非绝对安全,但它们可以大大提高您的 CentOS 服务器上 SSH 访问的安全性。