推荐使用ssh-keygen -t ed25519 -c "your_email@example.com"生成密钥对,私钥存于~/.ssh/id_ed25519(权限600),公钥为~/.ssh/id_ed25519.pub;若需兼容旧系统,可用ssh-keygen -t rsa -b 4096。

在 Linux 本地生成 SSH 密钥对,核心是用 ssh-keygen 命令。推荐使用更安全、更快的 ED25519 算法,而不是传统的 RSA(除非目标服务器老旧不支持)。
生成 ED25519 密钥对(推荐)
打开终端,执行:
ssh-keygen -t ed25519 -C "your_email@example.com"- 按回车接受默认保存路径(
~/.ssh/id_ed25519) - 可选:输入一个密钥密码(passphrase),增强私钥安全性;直接回车则不设密码(完全免密,但风险略高)
完成后,你会得到两个文件:~/.ssh/id_ed25519(私钥,必须保密,权限应为 600)~/.ssh/id_ed25519.pub(公钥,可安全分发)
生成 RSA 密钥对(兼容性更强)
如果远程服务器不支持 ED25519(如某些旧系统),可用:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"-
-b 4096比默认 2048 更安全,建议优先使用 - 后续步骤同上:回车确认路径,可选设密码
生成后文件为 id_rsa 和 id_rsa.pub。
验证和查看密钥
确认密钥已生成:
- 列出密钥文件:
ls -l ~/.ssh/id_* - 查看公钥内容:
cat ~/.ssh/id_ed25519.pub(复制时需完整,包括开头ssh-ed25519和结尾邮箱) - 检查私钥权限:
stat ~/.ssh/id_ed25519—— 应显示Access: (0600/-rw-------),否则运行chmod 600 ~/.ssh/id_ed25519
常见注意事项
避免踩坑的关键点:
- 不要手动编辑私钥文件,哪怕只改一个字符也会导致失效
- 公钥末尾的邮箱只是注释,不影响功能,但建议填真实邮箱便于识别
- 若重复运行
ssh-keygen并指定相同路径,会提示覆盖 —— 覆盖前请确认旧密钥不再使用 - 密钥生成后不会自动启用,还需把公钥部署到目标服务器的
~/.ssh/authorized_keys中











