当前位置: 首页 > 知识库问答 >
问题:

为什么将“-t rsa-b 4096”与ssh-keygen一起使用?

仲霍英
2023-03-14

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

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

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

那么为什么github页面指定rsa?

共有2个答案

应志用
2023-03-14

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"
巫马善
2023-03-14

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

-t(类型)

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

-b(位)

指定密钥大小的位数。这些是之前的1024个。

2048*2=4096被视为强。因此,建议使用密钥大小。

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

rsa-Rivest-Shamir-Adleman

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

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

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

 类似资料:
  • 我正在尝试使用openssl生成一个安全的私钥和公钥,以便与我的云托管提供商一起使用,但当我这样做时,openssl的公钥输出未被识别。 生成RSA私钥后,2048位长模,然后 它编写了RSA公钥。输出如下所示: 这是标准格式,它非常适合其他用途,但所有云和托管服务提供商都需要这样的公钥: 这是他们识别的唯一有效格式。 我知道ssh-keygen可以轻松完成所有这些,但我正在使用当前最新的open

  • 问题内容: 在研究Angularjs的FEQ时,我看到了以下文章: $ rootScope存在,但可以用于邪恶 Angular中的范围形成一个层次结构,原型通常是从​​树顶部的根范围继承。通常这可以忽略不计,因为大多数视图都有自己的控制器,因此也有自己的作用域。 有时,有些数据要对整个应用程序进行全局处理。对于这些,您可以像其他作用域一样在其上注入并设置值。由于作用域是从根作用域继承而来的,因此这

  • 问题内容: 我在ReactJS项目中一直在使用babel的async await。我发现可以方便地与React setState一起使用,我想更好地理解它。考虑以下代码: 我的意图是让异步验证代码在组件更新后运行。而且有效!生成的控制台日志显示: 验证代码仅在handleChange更新状态并呈现新状态后运行。 通常要在状态更新后运行代码,您必须在this.setState之后使用回调。这意味着,

  • 问题内容: 我已经在端口8080(默认)下启动并测试了Tomcat。现在,我将连接器端口更改为80,然后重新启动了Tomcat,在最小的Debian 6.0安装中没有任何显示。现在,这里的窍门在哪里? 问题答案: 转到/ etc / default / tomcat6并更改为

  • 问题内容: 在下面的代码中,我试图使h1元素具有最高利润。当我在css中将位置设置为inline时,未显示上边距。但是,当我将其更改为inline-block时,它确实可以。我想知道是否有人可以解释为什么会这样。谢谢。 这是我的HTML: 这是CSS 问题答案: CSS2规范的9.2.4节规定: inline-block 此值使元素生成一个 内联级块容器 。内联块的内部被格式化为块框,元素本身被格

  • 问题内容: 我正在使用ApplicationTestCase测试一个Android应用程序。我想模拟我的AsyncTasks之一(示例简化为显示问题): 因此,为了设置测试,我做了以下工作: 然后,实际测试如下: 但是运行时出现异常: 为什么模拟AsyncTask的技术不起作用? 请注意,在这种简单情况下,删除会导致问题消失,但是对于我的实际测试,我确实需要创建应用程序。 问题答案: AsyncT