当您首次连接到文件中未包含的 SSH 服务器时,known_hosts
您的 SSH 客户端会显示服务器提供的公钥的指纹。我从这个问题中发现这里作为客户端,您可以指定您想要的ssh_config
主机目录中的哪一个公钥对。/etc/ssh/
从ssh_config
手册页我发现当前的默认值如下:
[email protected],
[email protected],
[email protected],
[email protected],
[email protected],
[email protected],
ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,
ecdsa-sha2-nistp521,ssh-ed25519,
ssh-rsa,ssh-dss
直到最近,我的 SSH 服务器才向我发送 ECDSA 指纹而不是 RSA,但我想知道如果它很重要的话我应该选择哪种算法?
这文章声称 ECDSA 是the old elliptic-curve DSA implementation that is known to have severe vulnerabilites
我应该使用 RSA 还是最新的 ed25519 算法?
答案1
现在,
- RSA 仍被推荐作为黄金标准(强大、广泛的兼容性)
- ed25519 很好(独立于 NIST,但与旧客户端不兼容。
服务器通常提供更多不同的主机密钥类型,因此您的目标是兼容性。客户端配置中的优先级顺序是从强到弱,但更兼容。
坦白说,对于你,作为最终用户,这并不重要。有些密钥可能存在一些安全问题,但没有一个密钥被认为在合理的长度内被完全破解,这可能会导致中间人攻击或类似的事情。