为什么在 ssh-keygen 中使用 `-t rsa -b 4096`?

rm.*_*etc 6 ssh rsa ssh-keygen

为什么我应该按照 github 的指示在创建 SSH 密钥时使用选项、-t rsa-b 4096和?如果我在没有这些选项的情况下创建 SSH 密钥,它的安全性会降低吗?如果是这样,为什么?-C "myemail@example.com"

让我对这些选项感到沮丧的是它们很难记住(是 4096 还是 4095?哪个标志与数字一起,哪个与“rsa”值一起?哪个标志出现在我的电子邮件前面?不是吗?大写字母?),并且创建新密钥可能是一项频繁的活动,例如,如果尝试使用 bitbucket 和 gitlab 以及不同的云托管服务提供商。

[更新]
手册页指出,“要生成的密钥类型由 -t 选项指定。如果不带任何参数调用,ssh-keygen 将生成一个 RSA 密钥,用于 SSH 协议 2 连接。”

那么为什么 github 页面会指定-t rsa

koj*_*ow7 11

2021 年及以后:

RSA 现在开始被 Ed25519 取代。原来的问题是基于旧信息。Github 和大多数人现在建议如果可能的话使用 Ed25519。

ssh-keygen -t ed25519 -C "your_email@example.com"
Run Code Online (Sandbox Code Playgroud)

默认轮数为 16。您可以使用参数增加轮数-a。但是,请记住,轮数越多,验证速度就会越慢,因此登录速度会慢一些。默认值 16 可能会导致登录时间不到 1 秒,而 150 或更大的值可能会增加几秒或更长时间的延迟:

ssh-keygen -t ed25519 -a 100 -C "your_email@example.com"
Run Code Online (Sandbox Code Playgroud)

  • @dkcwd 除了本文之外,您还能提供其他来源来说明应避免使用 ED25519 吗?文章指出了 DARPA 和 NIST,但没有提供链接。另外,您能否解释一下为什么您认为量子计算机更难破解 RSA(即使是 100 轮)? (3认同)
  • 我也会在这里粘贴部分评论......它来自一个名叫 Theodore R. Smith 的人,评论内容是“在 2021 年,使用 ed25519 作为 SSH 密钥存在严重危险”。他认为量子计算的进步支持了这一观点。他说:“我已经切换到 RSA 8192。支持似乎相当不错。 `ssh-keygen -o -t rsa -a 100 -b 8192 -f id_rsa-8192 -C "youremail@example.com"` 100` 使得普通黑客更难暴力破解您的密码。” (2认同)

Shr*_*yas 6

-t-bssh-keygen 实用程序附带的参数。

-t(类型)

指定用于生成密钥的算法。可用的算法有 - rsa, dsa,ecdsa

-b(位)

指定编号。密钥大小的位。这些是10242048更早。

2048 * 2 =4096被认为是强。因此推荐的密钥大小。

2048位被认为足以用于 RSA 密钥。如果您不提及-b标志,则这是默认密钥大小。


rsa- Rivest–Shamir–Adleman

dsa-数字签名算法。通常与它一起使用的密钥大小为 1024。

ecdsa-椭圆曲线数字签名算法- 支持三种密钥大小:256、384 和 521 位。

至于不同公钥密码算法中的不同数字,您将不得不探索信息安全/加密/对称算法领域。