插件窝 干货文章 如何使用密钥身份验证在CentOS服务器上实现更安全的SSH登录

如何使用密钥身份验证在CentOS服务器上实现更安全的SSH登录

密钥 SSH bash sudo 823    来源:    2025-04-16

在CentOS服务器上配置SSH密钥身份验证

概述

密钥身份验证比传统的密码验证更安全,因为它使用非对称加密技术。以下是配置步骤:

1. 生成SSH密钥对

在本地计算机上执行:

ssh-keygen -t rsa -b 4096
# 或使用更安全的ed25519算法
ssh-keygen -t ed25519

按照提示操作,建议为密钥设置密码短语增加安全性。

2. 将公钥上传到服务器

方法一:使用ssh-copy-id(最简单)

ssh-copy-id username@your_server_ip

方法二:手动复制(如果没有ssh-copy-id)

cat ~/.ssh/id_rsa.pub | ssh username@your_server_ip "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"

3. 服务器端配置

编辑SSH配置文件:

sudo vi /etc/ssh/sshd_config

确保以下设置:

PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
PasswordAuthentication no  # 禁用密码登录(确认密钥登录可用后再设置)
PermitRootLogin no         # 禁用root直接登录

4. 重启SSH服务

sudo systemctl restart sshd

5. 测试连接

ssh -i ~/.ssh/id_rsa username@your_server_ip

6. 可选增强安全措施

  1. 更改SSH端口

    Port 2222  # 或其他非标准端口
    
  2. 使用fail2ban防止暴力破解

    sudo yum install epel-release
    sudo yum install fail2ban
    sudo systemctl enable fail2ban
    sudo systemctl start fail2ban
    
  3. 配置防火墙

    sudo firewall-cmd --permanent --add-port=22/tcp
    sudo firewall-cmd --reload
    

注意事项

  1. 在禁用密码验证前,确保密钥登录正常工作
  2. 备份私钥并妥善保管
  3. 考虑使用ssh-agent管理密钥密码
  4. 定期轮换密钥对(建议每6-12个月)

通过以上步骤,您的CentOS服务器将使用更安全的SSH密钥身份验证方式。