SSH Keygen 生成密钥

2023-03-12 16:03 588 版权

生成密钥(RSA)

ssh-keygen -b 4096 -t rsa -C "Your Description Here"
  • [-t rsa] 表示使用 RSA 算法。

  • [-b 4096] 表示 RSA 密钥长度 4096 bits (默认 2048 bits)。Ed25519 算法不需要指定。

  • [-f my_id] 表示在【当前工作目录】下生成一个私钥文件 my_id (同时也会生成一个公钥文件 my_id.pub)。

  • [-C "email@example.com"] 表示在公钥文件中添加注释,即为这个公钥“起个别名”(不是 id,可以更改)。

在敲下该命令后,会提示输入 passphrase,即为私钥添加一个“解锁口令”。

生成密钥(ed25519)

ssh-keygen -t ed25519 -C "Your Description Here"

常见的 SSH 登录密钥使用 RSA 算法。RSA 经典且可靠,但性能不够理想。

只要你的服务器上 OpenSSH 版本大于 6.5(2014 年的古早版本),就可以利用 Ed25519 算法生成的密钥对,减少你的登录时间。如果你使用 SSH 访问 Git,那么就更值得一试。

Ed25519 的安全性在 RSA 2048 与 RSA 4096 之间,且性能在数十倍以上。

ssh-keygen 生成、管理和转换认证密钥

在 Winsows 中,先将ssh-keygen 的路径添加到 Path:C:\Program Files\Git\usr\bin

最佳实践

  • 私钥必须要有 passphrase。如果私钥文件遗失,没有 passphrase 也无法解锁(只能暴力破解)。不要偷懒,passphrase 一定要加。
  • 一对密钥只对应一个 Git 服务。一对密钥通吃各 Git 服务不太明智。
  • 严格来讲,你应该在不同的机器上用不同的密钥,出了问题好排查处理。但实际上复杂的管理反而更容易让人犯错,选择你能 hold 住的方式更为重要。

参考