- 我是一个 Linux 新手。我计划普遍使用 OpenSSH
- 我已经花了好几个小时而且我似乎不能太快找到答案
- 我已经简要阅读了一些关于 IETF 的内容,但是老实说,它的方式太深入了,我在文本中迷路了
- 我在这个网站上搜索了以下内容,但没有很快找到答案:SSH RSA bad、openssh protocol 2、SSH2 authentication,等等我忘记了
- 我搜索了这个网站,上面说 SSH2 只使用 DSA(这个网站也是)。它还说 SSH2 只使用主机密钥;而 SSH1 使用服务器和主机密钥;这让我有点困惑
- This ubuntu page suggests DSA is less secure & suggests to use RSA; 关于 SSH2 什么也没说
- HostKey 下 sshd_config的 openbsd手册页(openssh 的网站链接到)说 RSA1 仅适用于 SSH1;但是 RSA、dsa 或 ecdsa 适用于 SSH2
- 我相信在收集这个问题之后,SSH2 可能是由 SSH Communications Security 专门创造的,用于实施 Secure Shell Protocol 2。如上所述,当我谈到 SSH 时,我打算只使用 OpenSSH
如何判断现有密钥是什么密码
我在“OpenSSH_5.5p1 Debian-4ubuntu6,OpenSSL 0.9.8o 2010 年 6 月 1 日”中使用默认选项(我未输入任何参数)创建了一个工作密钥。我可以从很多东西中分辨出它的 RSA(文件名、.pub 密钥中的第一行、私钥中的第一行);我唯一可以确认位强度(我认为它叫)的地方是当我创建它时它显示顶部的 randomart 显示 2048。我怎么知道它的 RSA1 或 RSA2,还是常规 RSA
请让我直截了当,因为我想要最安全的方式来执行 ssh :)
TLDR:使用 2048 位 RSA 密钥。
除非您使用的是古老的 SSH 客户端或服务器,否则您将使用协议版本 2。
虽然 DSA 和 RSA 算法在强度方面具有可比性,但 DSA 密钥在 SSH 使用时可能只有 1024 位,而 RSA 密钥不受限制。1024 位密钥随着当今可用的计算能力变得不安全,因此您至少需要 2048 位,这意味着 RSA。(RSA 过去也存在专利问题,导致推荐使用 DSA,但现在已不再如此。)
几乎所有服务器都接受 DSA 和 RSA 密钥。(一些特定的密钥由于Debian 错误而被列入黑名单,但没有任何不允许的密码。)ECDSA 是新的热点,但并不是所有的服务器都支持它,因此它没有被广泛使用。一旦这种情况发生变化,ECDSA 可能就是可行的方法。
您通常可以通过文件名来判断密钥的类型,通常是
id_dsa
,id_rsa
或id_ecdsa
. 该file
命令还可以检查包含以确定类型:要确定密钥长度,您可以使用以下
openssl
命令:除非你担心窃听拥有国家安全局资源的人,否则这并不重要。是的,一些算法或密钥长度理论上存在可能被利用的漏洞,但实际上它们不太可能被利用来对付你,除非你隐藏了极其有价值的数据,无论如何作为一个“Linux 新手”你是几乎可以肯定会有比这更严重的安全漏洞。