温馨提示×

CentOS如何提高SSH登录安全性

小樊
60
2025-04-17 00:44:52
栏目: 智能运维

在CentOS系统中,提高SSH登录安全性可以通过以下几种方法实现:

1. 使用SSH密钥认证

  • 生成SSH密钥对:在本地机器上生成SSH密钥对。

    ssh-keygen -t rsa -b 4096 -f ~/.ssh/my_key
    
  • 将公钥复制到远程服务器:使用ssh-copy-id命令将公钥复制到远程服务器的~/.ssh/authorized_keys文件中。

    ssh-copy-id user@remote_server
    
  • 配置SSH服务器:编辑远程服务器上的/etc/ssh/sshd_config文件,确保以下配置项没有被注释掉,并且设置为上述值。

    PubkeyAuthentication yes
    AuthorizedKeysFile .ssh/authorized_keys
    
  • 重启SSH服务:保存并退出编辑器后,重启SSH服务以应用更改。

    sudo systemctl restart sshd
    

2. 禁用密码认证

  • 为了提高安全性,可以禁用密码认证,只允许公钥认证。编辑/etc/ssh/sshd_config文件,找到并修改以下配置项:

    PasswordAuthentication no
    
  • 然后重启SSH服务:

    sudo systemctl restart sshd
    

3. 更改SSH默认端口

  • 更改SSH服务的默认端口可以防止一些自动化工具的扫描,提高安全性。编辑/etc/ssh/sshd_config文件,找到并修改以下配置项:

    Port 2222
    
  • 保存文件并重启SSH服务以应用更改:

    sudo systemctl restart sshd
    

4. 禁用root登录

  • 为了增强安全性,可以禁用root用户通过SSH登录。编辑/etc/ssh/sshd_config文件,将PermitRootLogin设置为no

    PermitRootLogin no
    
  • 然后重启SSH服务以应用更改:

    sudo systemctl restart sshd
    

5. 配置防火墙

  • 使用firewalld配置防火墙规则,只允许特定IP地址或端口访问SSH服务。

    sudo firewall-cmd --zone=public --add-port=2222/tcp --permanent
    sudo firewall-cmd --reload
    

6. 其他安全设置

  • 限制登录尝试次数:在sshd_config中设置MaxAuthTries为一个较小的数字,如3,以限制失败认证的最大次数。
  • 启用公钥压缩:关闭或延迟压缩功能,以减少潜在的安全风险。
  • 显示登录消息:在sshd_config中配置Banner,以显示登录前的提示信息。

通过上述配置,可以显著提高CentOS系统通过SSH登录的安全性。

0