售前咨询400-838-0503

如何配置SSH密钥对登录并禁用密码登录?

发布:2025-03-31 21:55

搜索全部帮助分类的文档

如何安全配置SSH密钥对登录并彻底禁用密码认证

在当今网络安全威胁日益严峻的环境下,传统的SSH密码认证方式已经变得不再安全。本文将详细介绍如何配置更安全的SSH密钥对认证方式,并彻底禁用密码登录,大幅提升服务器的安全性。

为什么要使用SSH密钥对认证?

SSH密钥认证相比传统密码认证具有以下优势:

  • 安全性更高:密钥认证使用2048位或4096位的RSA密钥,远高于普通密码强度
  • 抗暴力破解:密钥认证不会被暴力破解工具攻击
  • 管理方便:可以轻松实现多服务器免密登录
  • 审计追踪:每个密钥可以关联特定用户和设备

详细配置步骤

1. 生成SSH密钥对

在本地计算机上执行以下命令生成密钥对:

ssh-keygen -t rsa -b 4096 -C "[email protected]"

参数说明:

  • -t rsa:指定密钥类型为RSA
  • -b 4096:指定密钥长度为4096位
  • -C:添加注释信息

2. 将公钥上传至服务器

使用ssh-copy-id命令自动上传:

ssh-copy-id username@your_server_ip

或手动操作:

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 username@your_server_ip

禁用SSH密码认证

确保密钥登录正常工作后,编辑SSH配置文件:

sudo nano /etc/ssh/sshd_config

修改以下参数:

PasswordAuthentication no
ChallengeResponseAuthentication no
UsePAM no
PermitRootLogin prohibit-password

重启SSH服务使配置生效:

sudo systemctl restart sshd

高级安全配置建议

  • 更改默认SSH端口:Port 2222
  • 限制登录用户:AllowUsers username
  • 启用防火墙限制IP访问
  • 定期轮换SSH密钥
  • 考虑使用证书认证(Certificate Authentication)替代密钥认证

总结

通过配置SSH密钥认证并禁用密码登录,可以大幅提升服务器的安全性,有效防御暴力破解等攻击。建议所有面向互联网的服务器都采用这种认证方式。记住要始终保留至少一个可用的SSH连接,避免配置错误导致自己被锁在服务器外。

按文档操作后还是不行,把机器编号、出问题的时间点和现象截图一起提工单,能少来回一轮。

提交工单