售前咨询400-838-0503

怎样配置Linux云服务器的SSH密钥登录?

发布:2025-05-07 06:33

Linux云服务器SSH密钥登录配置全攻略

在云计算时代,SSH密钥登录已成为Linux服务器安全管理的黄金标准。相比传统密码登录,密钥认证不仅更安全,还能实现自动化运维。本文将手把手教你从零开始配置SSH密钥登录,让你的云服务器固若金汤。

一、为什么要使用SSH密钥登录?

  • 安全性翻倍:2048位RSA密钥的破解难度远超任何复杂密码
  • 防御暴力破解:彻底杜绝字典攻击和暴力破解尝试
  • 运维效率提升:无需记忆密码,特别适合多服务器管理
  • 自动化支持:CI/CD等自动化流程必须依赖密钥认证

二、详细配置步骤

步骤1:生成密钥对

在本地终端执行(Windows可用Git Bash):

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

建议为密钥设置密码短语(passphrase)增加二次保护

步骤2:上传公钥到服务器

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

ssh-copy-id -i ~/.ssh/id_rsa.pub username@server_ip

方法二:手动上传(适合高级用户)

scp ~/.ssh/id_rsa.pub username@server_ip:~/
ssh username@server_ip
mkdir -p ~/.ssh
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

步骤3:服务器端关键配置

编辑SSH配置文件:

sudo nano /etc/ssh/sshd_config

确保以下参数设置正确:

PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
PasswordAuthentication no  # 禁用密码登录(谨慎操作)
PermitRootLogin prohibit-password

重启SSH服务使配置生效:

sudo systemctl restart sshd

三、进阶技巧与故障排除

1. 多密钥管理技巧

在~/.ssh/config中配置多服务器别名:

Host aliyun
    HostName 123.123.123.123
    User root
    IdentityFile ~/.ssh/aliyun_key
    
Host aws
    HostName ec2-1-2-3-4.compute-1.amazonaws.com
    User ubuntu
    IdentityFile ~/.ssh/aws_key

2. 常见问题解决方案

  • 权限问题:确保~/.ssh目录权限为700,authorized_keys为600
  • 连接被拒绝:检查服务器防火墙是否开放22端口
  • SELinux阻止:执行restorecon -Rv ~/.ssh
  • 调试模式:使用ssh -vT user@host查看详细错误

安全提醒

❌ 切勿将私钥(id_rsa)上传到任何公开位置
✅ 建议定期轮换密钥(至少每6个月一次)
🔒 对重要服务器启用双重认证(2FA)

四、各大云平台特殊配置

云平台 特殊配置 密钥位置
阿里云 需在控制台绑定密钥对后重启实例 /root/.ssh/authorized_keys
AWS EC2 使用.pem密钥文件,默认用户为ec2-user或ubuntu /home/ec2-user/.ssh/authorized_keys
腾讯云 支持控制台直接注入密钥 /home/ubuntu/.ssh/authorized_keys

通过本文的详细指导,您应该已经成功配置了SSH密钥登录。这种认证方式不仅能大幅提升服务器安全性,还能为自动化运维铺平道路。建议将本文加入书签,在配置新服务器时可随时参考。

如仍有疑问,欢迎在评论区留言讨论!

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

提交工单