当前最佳的SSH2authentication密码? 某些只允许/不允许? 如何知道现有密钥是什么密码?

  • 我是一个Linux新手。 我打算一般使用OpenSSH
  • 我花了好几个小时,我似乎不能很快find答案
  • 我已经简要地阅读了一些关于IETF的文章,但是我会说实话,它的方式太深入,我迷失在文本中
  • 我search了这个网站以下&并没有很快find答案:SSH RSA坏,openssh协议2,SSH2身份validation,其中我已经忘记
  • 我search了这个网站 ,其中说SSH2只使用DSA(就像这个网站一样 )。 它也说SSH2只使用主机密钥; 而SSH1使用服务器和主机密钥; 这使我有点困惑
  • 这个Ubuntu的页面build议DSA是不太安全的,并build议使用RSA; 没有什么关于SSH2的说法
  • 在HostKey下的sshd_config (openssh网站链接到的)的openbsd 手册页说RSA1只适用于SSH1; 但是RSA,dsa或ecdsa是用于SSH2的
  • 我相信在收集了这个问题之后,SSH2可能会被SSH通信安全特别指定,用于实现安全壳协议2.如上所述,当我提到SSH时,我打算只使用OpenSSH

如何知道现有的密钥是什么密码

我在'OpenSSH_5.5p1 Debian-4ubuntu6,OpenSSL 0.9.8o 2010年6月1日'中使用默认选项(我没有input参数)创build了一个工作密钥。 我可以从众多的东西(文件名,私钥中的.pub密钥的第一行)告诉它的RSA。 只有地方我可以确认位强度(我认为它的名字)是当我创build它显示在顶部的randomart显示2048年。我怎么知道它的RSA1或RSA2,或常规RSA

请直接设置我,因为我想要最安全的方式来做ssh 🙂

TLDR:使用2048位RSA密钥。

除非您使用的是古老的SSH客户端或服务器,否则您将使用协议版本2。

虽然DSA和RSAalgorithm在强度方面具有可比性,但是由SSH使用时,DSA密钥可能只有1024位,而RSA密钥不受限制。 1024位密钥对于当前可用的计算能力变得不安全,所以你至less需要2048位,这意味着RSA。 (过去也有RSA的专利问题导致DSA被推荐,但这些已不再是这种情况。)

几乎所有的服务器都将接受DSA和RSA密钥。 (由于Debian的缺陷 ,一些特定的键被列入黑名单,但是没有任何被拒绝的密码。)ECDSA是新的热点,但并不是所有的服务器都支持它,所以它不能被广泛使用。 一旦这个变化,ECDSA可能会成为一条路。

您通常可以通过文件名(通常是id_dsaid_rsaid_ecdsa来说明键的types。 file命令还可以检查包含以确定types:

 % file id_rsa id_rsa: PEM RSA private key 

要确定密钥长度,可以使用openssl命令:

 % openssl rsa -in id_rsa -noout -text | head -n1 Enter pass phrase for id_rsa: Private-Key: (4096 bit) % openssl dsa -in id_dsa -noout -text | head -n1 read DSA key Private-Key: (1024 bit) 

除非你担心用NSA的资源窃听某人,否则这并不重要。 是的,一些algorithm或密钥长度有可能被利用的理论漏洞,但是在实践中,除非你隐藏了非常有价值的数据,否则它们不太可能被利用来攻击你,在任何情况下,作为“Linux新手”几乎肯定会有比这更严重的安全漏洞。