售前咨询400-838-0503

如何在Linux云服务器上配置无密码SSH登录?

发布:2025-04-13 03:33

Linux云服务器无密码SSH登录终极配置指南

在Linux服务器管理中,频繁输入SSH密码既繁琐又不安全。本文将详细介绍如何通过SSH密钥对实现免密码登录,让您的服务器管理效率和安全等级同步提升。

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

  • 安全性增强:密钥认证比传统密码更难以破解
  • 操作便捷:无需记忆和输入复杂密码
  • 自动化支持:特别适合脚本和自动化任务
  • 权限控制:可以精确控制不同密钥的访问权限

准备工作

在开始前,请确保:

  1. 本地计算机已安装SSH客户端
  2. 拥有目标服务器的SSH访问权限
  3. 服务器已开启SSH服务(默认端口22)

详细配置步骤

第一步:生成SSH密钥对

在本地计算机终端执行:

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

系统会提示:

  • 选择密钥保存位置(默认~/.ssh/id_rsa)
  • 设置密钥密码(可选,建议设置增强安全性)

第二步:将公钥上传到服务器

使用ssh-copy-id命令自动完成:

ssh-copy-id username@server_ip

或者手动操作:

cat ~/.ssh/id_rsa.pub | ssh username@server_ip "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

第三步:服务器端权限配置

登录服务器,确保以下权限设置:

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

第四步:测试无密码登录

ssh username@server_ip

如果配置正确,将直接登录无需输入密码

高级配置技巧

1. 多密钥管理

在~/.ssh/config文件中配置:

Host myserver
    HostName server_ip
    User username
    IdentityFile ~/.ssh/custom_key

2. 禁用密码登录(增强安全)

编辑/etc/ssh/sshd_config:

PasswordAuthentication no

重启SSH服务:

sudo systemctl restart sshd

3. 配置SSH Agent

避免每次使用密钥时输入密码:

eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsa

常见问题解决方案

Q1: 仍然提示输入密码

检查:

  • authorized_keys文件权限是否为600
  • .ssh目录权限是否为700
  • SELinux是否阻止访问(临时关闭测试:setenforce 0)

Q2: 连接超时

检查:

  • 服务器防火墙是否开放SSH端口
  • 服务器是否正常运行
  • 网络连接是否正常

Q3: "Agent admitted failure to sign"错误

解决方案:

ssh-add

安全最佳实践

  • 定期轮换SSH密钥(至少每年一次)
  • 为不同服务使用不同密钥对
  • 密钥文件设置强密码保护
  • 限制可登录的IP地址(通过/etc/hosts.allow)
  • 考虑使用证书认证替代密钥认证(更高级方案)

通过本文的详细指导,您应该已经成功配置了SSH无密码登录。这种认证方式不仅提高了工作效率,还显著增强了服务器安全性。建议在完成配置后立即测试并验证功能是否正常,然后再考虑禁用密码认证以进一步提升安全等级。

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

提交工单