如何在Linux上配置SSH免密登录?
Linux系统SSH免密登录配置全攻略:告别繁琐密码验证
作为Linux系统管理员或开发者,SSH免密登录是必须掌握的效率工具。本文将详细介绍从密钥生成到权限配置的完整流程,并针对常见问题提供解决方案。
一、SSH免密登录原理图解

通过非对称加密技术实现:本地生成公钥/私钥对,将公钥上传至服务器authorized_keys
文件,建立信任关系后即可实现无密码认证。
二、详细配置步骤
-
1. 客户端生成密钥对
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
建议使用更强的ed25519算法:
ssh-keygen -t ed25519 -a 100
-
2. 上传公钥到服务器
ssh-copy-id -i ~/.ssh/id_rsa.pub username@server_ip
手动部署方法:将公钥内容追加到服务器
~/.ssh/authorized_keys
文件 -
3. 服务器端权限配置
chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys
权限设置不当会导致认证失败!
三、高级配置技巧
1. 多密钥管理方案
修改~/.ssh/config
文件实现不同服务器使用不同密钥:
Host myserver
HostName server_ip
User username
IdentityFile ~/.ssh/special_key
2. 增强安全性措施
- 禁用密码登录:修改
/etc/ssh/sshd_config
中PasswordAuthentication no
- 更改默认SSH端口
- 设置密钥密码短语
四、常见问题排查
问题现象 | 解决方法 |
---|---|
Permission denied (publickey) |
|
Agent admitted failure to sign | 执行ssh-add ~/.ssh/id_rsa 添加密钥到代理 |
通过本文的详细指导,您应该已经成功配置了SSH免密登录。建议定期轮换密钥并配合Fail2Ban等工具加强防护。掌握这一技能将显著提升您的服务器管理效率!