要限制 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 访问的安全性。