云服务器Linux系统如何配置SSH免密登录?
云服务器Linux系统SSH免密登录配置全指南
在Linux服务器管理中,SSH免密登录是提高运维效率的关键技术。本文将详细介绍如何在云服务器上配置SSH密钥对认证,实现安全便捷的远程登录。
一、SSH免密登录原理
SSH免密登录基于非对称加密技术,通过生成公钥-私钥对实现身份验证:
- 公钥:存放在服务器
~/.ssh/authorized_keys
文件中 - 私钥:保存在本地客户端,需严格保密

二、详细配置步骤
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服务器管理员都采用密钥认证方式管理服务器。