ssh -oCiphers=3des-cbc [user@]host # or briefer ssh -c...; see below
ssh -oMACs=hmac-sha1 ditto # or briefer ssh -m...; probably should be rejected
# may need to specify a non-AEAD cipher to get valid test of a MAC
ssh -oKexAlgorithms=diffie-hellman-group1-sha1 ditto # should be rejected
ssh -oHostKeyAlgorithms=ssh-rsa ditto # ditto
ssh -oPubkeyAcceptedAlgorithms=ssh-rsa ditto # below 8.5 use PubkeyAcceptedKeyTypes; ditto
要测试服务器是否允许某种算法,最简单的方法是尝试使用它进行连接并查看服务器是否接受它,如下例所示:
今天的“最佳实践”表示不应使用 3DES;它实际上并没有被破坏,但如果你发送千兆字节的数据,被动的对手可能能够检测到发生了重复的密码块,但(使用 CBC)并不是说它是重复的明文,这将是加密中的“破坏”理论,但在实践中不太可能有任何用处。如果您想浪费时间深入研究这个老鼠洞,请参阅 crypto.SX 或可能的 security.SX。
hmac-sha1 和 ssh-rsa 或 ssh-dss(两者都使用 sha1)实际上也没有被破坏,但不再被认为提供足够的安全边际。
如果您想查看除(可能)客户端身份验证之外的所有服务器允许的算法,只需进行连接,
ssh -vv
然后查看这部分输出:对于除客户端身份验证之外的所有内容,以及这(稍后)部分(可能会被省略,具体取决于服务器软件):
用于客户端身份验证(即被服务器接受)。