Linux · 2 分钟阅读
ssh-keygen
2026 年默认密钥类型:Ed25519。比 RSA 短、比 ECDSA 安全、签名快。新项目别再用 RSA 4096。
生成密钥
# Ed25519(推荐)
ssh-keygen -t ed25519 -C "you@host"
# 指定文件名 + 密码
ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519_work -C "work"
# 兼容老系统时仍可生成 RSA 4096
ssh-keygen -t rsa -b 4096 -C "you@host"
私钥设密码是默认建议,配合
ssh-agent/ 硬件 key(YubiKey)更省心。
文件位置
~/.ssh/
├── id_ed25519 # 私钥
├── id_ed25519.pub # 公钥
├── config # 客户端配置
└── known_hosts
权限
chmod 700 ~/.ssh
chmod 600 ~/.ssh/id_ed25519
chmod 644 ~/.ssh/id_ed25519.pub
chmod 600 ~/.ssh/config
权限不对,OpenSSH 会拒绝加载。
常用参数
| 参数 | 用途 |
|---|---|
-t |
密钥类型(ed25519 / rsa / ecdsa) |
-b |
比特数(RSA 用) |
-f |
文件路径 |
-C |
注释(一般是邮箱) |
-p |
改私钥密码 |
-e |
导出为另一种格式 |
转换与导出
# 私钥加密码
ssh-keygen -p -f ~/.ssh/id_ed25519
# 转 PEM(给老 Java 应用用)
ssh-keygen -e -m PEM -f ~/.ssh/id_rsa > id_rsa.pem
# 指纹
ssh-keygen -lf ~/.ssh/id_ed25519.pub
ssh-keygen -lvf ~/.ssh/id_ed25519.pub # 顺手看可视指纹
安全建议
- 私钥永远不离开本机
- 多环境用不同密钥,
~/.ssh/config按 Host 绑定 - 关键私钥加密码,物理设备加 PIN
- 旧机器的密钥定期轮换(
ssh-keygen -lf看时间)