概述
ssh-keygen 是生成和管理 SSH 协议中使用的加密密钥的必备命令。它允许您在没有密码的情况下安全地连接到服务器,或为 Git 等服务进行身份验证。
主要功能
- 生成 RSA、ED25519 等多种类型的 SSH 密钥对
- 更改现有密钥的密码(passphrase)
- 从私钥中提取公钥
- 查看密钥指纹(fingerprint)
- 转换密钥格式
主要选项
ssh-keygen 命令提供了用于密钥生成和管理的各种选项。
密钥生成选项
密钥管理选项
生成的命令:
请尝试组合命令。
描述:
`ssh-keygen` 执行命令。
通过组合这些选项,您可以与 AI 一起虚拟地执行命令。
使用示例
通过 ssh-keygen 的各种使用示例,您可以学习如何生成和管理 SSH 密钥。
生成默认 RSA 密钥对
ssh-keygen
最常见的用法,在默认路径(~/.ssh/id_rsa)下生成 RSA 密钥对。会提示输入密码。
生成 ED25519 密钥对并添加注释
ssh-keygen -t ed25519 -C "your_email@example.com"
生成 ED25519 类型的密钥,并在公钥中添加电子邮件注释。
使用特定文件名生成密钥对
ssh-keygen -f ~/.ssh/my_custom_key
在非默认路径下以其他名称生成密钥文件。(例如:~/.ssh/my_custom_key)
更改现有密钥的密码
ssh-keygen -p -f ~/.ssh/id_rsa
更改已生成的私钥文件的密码。将以交互方式提示输入旧密码和新密码。
从私钥提取公钥
ssh-keygen -y -f ~/.ssh/id_rsa
从私钥文件(id_rsa)中提取相应的公钥并显示在标准输出上。您可以将此内容保存到 `id_rsa.pub` 文件中。
提示与注意事项
为了安全高效地使用 SSH 密钥,请注意以下提示和注意事项。
使用密码(Passphrase)
为私钥设置密码可以在密钥泄露时防止未经授权的使用,从而增强安全性。与 `ssh-agent` 结合使用,可以避免每次都输入密码,使用起来更方便。
- **增强安全性**:在私钥泄露时提供额外的保护层
- **便利性**:利用 `ssh-agent`,一次认证即可在多个会话中使用
设置密钥文件权限
私钥文件必须设置为只有所有者才能读取和写入。使用 `chmod 600` 至关重要,以防止其他用户访问。
- **私钥**:`chmod 600 ~/.ssh/id_rsa`(仅所有者可读/写)
- **公钥**:`chmod 644 ~/.ssh/id_rsa.pub`(所有者可读/写,组/其他人可读)
推荐的密钥类型
为了遵循最新的安全标准,建议使用 ED25519 或 RSA 4096 位密钥。
- **ED25519**:更快、更安全,密钥尺寸更小
- **RSA 4096**:兼容性好,安全性仍然很强