7

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

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

[更新]
手册页指出,“要生成的密钥类型使用 -t 选项指定。如果在没有任何参数的情况下调用,ssh-keygen 将生成用于 SSH 协议 2 连接的 RSA 密钥。”

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

4

2 回答 2

7

-t并且-b是 ssh-keygen 实用程序附带的参数。

-t(类型)

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

-b(位)

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

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

2048对于 RSA 密钥,bits 被认为是足够的。如果您不提及-b标志,这是默认密钥大小。


rsa-里韦斯特-沙米尔-阿德尔曼

dsa-数字签名算法。通常会使用 1024 的密钥大小。

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

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

于 2018-08-14T06:15:21.157 回答
6

2021 年及以后:

RSA 现在开始被淘汰,取而代之的是 Ed25519。最初的问题是基于旧信息。Github 和大多数人现在建议尽可能使用 Ed25519。

ssh-keygen -t ed25519 -C "your_email@example.com"

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

ssh-keygen -t ed25519 -a 100 -C "your_email@example.com"
于 2021-05-21T18:36:04.793 回答