乐闻世界logo
搜索文章和话题

面试题手册

SSH 公钥认证的原理和配置方法是什么?

SSH 公钥认证是一种比密码认证更安全、更便捷的身份验证方式。它基于非对称加密技术,使用一对密钥(公钥和私钥)进行身份验证。公钥认证原理密钥对生成:客户端生成一对密钥私钥:保存在客户端本地,必须严格保密公钥:上传到服务器,可以公开分享认证流程:客户端向服务器发起连接请求服务器检查客户端的公钥是否在 ~/.ssh/authorized_keys 文件中如果公钥存在,服务器生成一个随机挑战字符串客户端使用私钥对挑战字符串进行签名服务器使用对应的公钥验证签名验证通过后,认证成功密钥类型对比| 算法 | 密钥长度 | 安全性 | 性能 | 兼容性 ||------|---------|--------|------|--------|| RSA | 2048/4096 | 高 | 中 | 最好 || ECDSA | 256/384 | 高 | 快 | 良好 || Ed25519 | 256 | 极高 | 最快 | 较新 |生成 SSH 密钥# 生成 RSA 密钥ssh-keygen -t rsa -b 4096 -C "your_email@example.com"# 生成 Ed25519 密钥(推荐)ssh-keygen -t ed25519 -C "your_email@example.com"配置公钥认证# 将公钥复制到服务器ssh-copy-id user@hostname# 或手动复制cat ~/.ssh/id_rsa.pub | ssh user@hostname "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"安全最佳实践私钥保护:设置强密码短语(passphrase)设置正确的文件权限(600)不要在多台设备间共享私钥服务器配置:禁用密码认证:PasswordAuthentication no禁用 root 登录:PermitRootLogin no限制登录用户:AllowUsers username密钥管理:定期轮换密钥使用不同的密钥对管理不同服务器及时撤销不再使用的公钥优势安全性:私钥不通过网络传输,难以被窃取便捷性:无需每次输入密码自动化:便于脚本和自动化工具使用可审计性:可以追踪哪个密钥在何时登录公钥认证已成为现代服务器管理的标准实践,特别适用于 DevOps 和自动化运维场景。
阅读 0·2月19日 19:31