如何知道现有的密钥是什么密码
我在'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_dsa , id_rsa或id_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新手”几乎肯定会有比这更严重的安全漏洞。