本文详细介绍了在Linux服务器上配置SSH密钥认证并禁用root密码登录的完整流程。通过使用ssh-keygen生成密钥对、部署公钥至服务器,并修改SSH配置文件以启用密钥认证,可大幅提升系统安全性。关键步骤包括:生成密钥后务必先测试密钥登录成功,再谨慎禁用密码认证。此方法能有效防御暴力破解攻击,是服务器安全加固的基础实践。实施后需妥善保管私钥,并确保留有应急访问途径。

博主博客

概述

使用SSH密钥对进行身份验证是提升Linux服务器安全性的有效方法。相比传统的密码登录,密钥认证具有更高的抗暴力破解能力,且可通过禁用密码登录进一步降低安全风险。本文将详细介绍如何配置SSH密钥登录并禁用root用户的密码登录功能。

配置步骤

1. 生成SSH密钥对

首先以root用户登录服务器,执行以下命令生成RSA密钥对:

ssh-keygen -t rsa

执行后会遇到以下提示,建议按如下方式操作:

  • 保存路径提示:直接按回车使用默认路径 /root/.ssh/id_rsa
  • 密码短语:可为密钥设置额外的密码保护(留空则直接回车)
  • 确认密码短语:重复输入相同的密码短语

成功生成后,终端会显示类似以下信息:

Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.

2. 密钥文件说明

/root/.ssh/ 目录下会生成两个文件:

  • id_rsa:私钥文件,需妥善保管在本地计算机
  • id_rsa.pub:公钥文件,可公开部署到服务器

安全建议:生成后可将私钥下载到本地安全存储,并考虑删除服务器上的私钥副本,但请务必确保本地备份可靠,否则将导致无法登录。

3. 配置公钥授权

将公钥导入授权文件,使服务器接受该密钥进行身份验证:

cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys

4. 修改SSH服务配置

编辑SSH配置文件 /etc/ssh/sshd_config,确保以下设置生效:

# 启用RSA认证
RSAAuthentication yes

# 启用公钥认证
PubkeyAuthentication yes

# 指定授权密钥文件路径
AuthorizedKeysFile .ssh/authorized_keys

如果这些行前面有 # 注释符号,请将其移除。

5. 重启SSH服务

应用配置更改(根据系统版本选择相应命令):

# 对于使用systemctl的系统(如CentOS 7+/Ubuntu 16.04+)
systemctl restart sshd

# 对于使用service的传统系统
service sshd restart

6. 测试密钥登录

在继续下一步之前,请务必打开新的终端会话测试密钥登录是否正常工作。 这是关键的安全步骤,确保不会因后续配置而失去服务器访问权限。

7. 禁用密码登录(可选但推荐)

确认密钥登录成功后,可禁用密码登录以增强安全性。
编辑 /etc/ssh/sshd_config 文件,找到以下配置:

PasswordAuthentication yes

将其修改为:

PasswordAuthentication no

再次重启SSH服务:

systemctl restart sshd   # 或 service sshd restart

注意事项与最佳实践

  1. 备份原始配置:修改关键配置文件前,建议先备份:
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.backup
  1. 权限设置:确保相关文件具有正确的权限:
chmod 700 /root/.sshchmod 600 /root/.ssh/authorized_keys
  1. 多用户环境:如果服务器有多个用户,应在各自家目录的 .ssh/ 文件夹下配置密钥,避免全部使用root密钥。

  2. 紧急访问:在禁用密码登录前,请确保有其他可用的访问方式(如控制台访问),以防密钥丢失或配置错误导致无法登录。

  3. 密钥管理

    • 为不同服务器使用不同的密钥对
    • 定期更新密钥对(建议每6-12个月)
    • 使用强密码短语保护私钥
  4. 兼容性说明:如使用Windows客户端,建议使用ssh-keygen生成密钥而非PuTTYgen,或使用PuTTYgen将OpenSSH格式密钥转换为PPK格式,以确保兼容性。

总结

通过配置SSH密钥登录并禁用root密码登录,可显著提升服务器的安全性,有效防御暴力破解攻击。此配置结合了便利性与安全性,是现代服务器安全管理的标准实践之一。实施后请妥善保管私钥,并定期审查安全设置以应对新的威胁。