文档首页> 常见问题> 云服务器Linux系统如何配置SSH免密登录?

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

发布时间:2025-04-19 22:45       

云服务器Linux系统SSH免密登录配置全指南

在Linux服务器管理中,SSH免密登录是提高运维效率的关键技术。本文将详细介绍如何在云服务器上配置SSH密钥对认证,实现安全便捷的远程登录。

一、SSH免密登录原理

SSH免密登录基于非对称加密技术,通过生成公钥-私钥对实现身份验证:

  • 公钥:存放在服务器~/.ssh/authorized_keys文件中
  • 私钥:保存在本地客户端,需严格保密
SSH密钥认证流程示意图

二、详细配置步骤

1. 生成SSH密钥对

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

执行后会提示保存位置(默认~/.ssh/id_rsa)和设置密码短语(可选)

2. 上传公钥到服务器

方法一:使用ssh-copy-id命令(推荐)

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

方法二:手动上传(适用于没有ssh-copy-id的环境)

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

3. 设置正确的文件权限

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

4. 修改SSH服务端配置

编辑/etc/ssh/sshd_config文件:

PubkeyAuthentication yes
PasswordAuthentication no  # 禁用密码登录(可选)

重启SSH服务使配置生效:

sudo systemctl restart sshd

三、常见问题解决方案

1. 权限问题导致认证失败

确保服务器上.ssh目录和authorized_keys文件权限正确

2. SELinux导致的问题

restorecon -Rv ~/.ssh

3. 调试SSH连接

ssh -v username@server_ip

四、安全增强建议

  • 使用ED25519算法替代RSA:ssh-keygen -t ed25519
  • 禁用root用户SSH登录
  • 修改默认SSH端口(22)
  • 定期轮换密钥对
  • 使用SSH代理转发管理多台服务器

通过本文的详细指导,您应该已经成功配置了SSH免密登录。这种认证方式不仅提高了操作效率,还比传统密码登录更加安全。建议所有Linux服务器管理员都采用密钥认证方式管理服务器。