售前咨询400-838-0503

Linux云服务器如何配置SSH免密登录?

发布:2025-04-01 02:16

Linux云服务器SSH免密登录全攻略:三步实现安全便捷连接

在云服务器管理中,频繁输入SSH密码既影响效率又存在安全隐患。本文将详细介绍如何通过SSH密钥对实现Linux云服务器的免密登录,涵盖从密钥生成到权限配置的完整流程,助您提升服务器管理效率。

一、准备工作

在开始配置前,请确保:

  • 本地计算机已安装OpenSSH客户端(Windows 10+/macOS/Linux默认已安装)
  • 拥有云服务器的SSH登录权限
  • 服务器开放了SSH端口(默认22)

推荐使用Terminal(Mac/Linux)或PuTTY(Windows)作为SSH客户端工具。

二、生成SSH密钥对

在本地计算机执行以下操作:

1. 生成密钥对

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

参数说明:

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

2. 设置密钥存储路径

系统会提示输入保存位置(默认~/.ssh/id_rsa),建议直接回车使用默认值。

3. 设置密钥密码(可选)

为增加安全性,可为私钥设置密码(每次使用需输入),若追求完全免密可直接回车跳过。

成功生成后,会在~/.ssh目录下得到两个文件:

  • id_rsa:私钥(必须严格保密)
  • id_rsa.pub:公钥(需上传到服务器)

三、配置服务器端

1. 上传公钥到服务器

使用以下命令将公钥上传至服务器(替换username和server_ip):

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

若提示命令不存在,可手动操作:

  1. 登录服务器:ssh username@server_ip
  2. 创建.ssh目录:mkdir -p ~/.ssh
  3. 将本地公钥内容追加到authorized_keys文件:
    cat >> ~/.ssh/authorized_keys(然后粘贴公钥内容,按Ctrl+D保存)

2. 设置权限(关键步骤)

错误的权限设置会导致SSH拒绝密钥认证:


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

3. 修改SSH配置(可选)

编辑/etc/ssh/sshd_config文件:


PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
PasswordAuthentication no  # 禁用密码登录(增强安全)
    

修改后重启SSH服务:

sudo systemctl restart sshd

四、测试连接

断开当前SSH连接后,直接运行:

ssh username@server_ip

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

常见问题解决

1. 仍需输入密码

  • 检查authorized_keys文件权限是否为600
  • 确保.ssh目录权限为700
  • 查看服务器/var/log/auth.log日志排查问题

2. "Permission denied"错误

可能原因:

  • 公钥未正确添加至authorized_keys
  • 服务器存储空间已满
  • SELinux限制(可尝试restorecon -Rv ~/.ssh

3. 多台服务器管理技巧

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


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

之后只需运行ssh myserver即可连接。

安全增强建议

  • 定期轮换密钥对(至少每6个月一次)
  • 为私钥设置强密码(即使选择免密登录)
  • 限制可登录的IP地址(通过sshd_config的AllowUsers)
  • 考虑使用证书认证替代密钥认证(适用于大型环境)

通过本文的详细步骤,您已成功实现Linux云服务器的SSH免密登录。这种认证方式不仅提升工作效率,其非对称加密特性也比传统密码认证更加安全。建议结合防火墙规则和定期审计,构建更完善的服务器安全体系。

实际应用中,不同Linux发行版或云平台可能存在细微差异,遇到问题时查阅官方文档或社区讨论通常能快速找到解决方案。

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

提交工单