客户端有没有办法在不使用 NMAP 的情况下检查可用的 SSH 密码和算法?
我已经配置了我的 sshd_config 来禁用我的安全团队发现的一些密码和算法。
只是想自己测试一下这些密码现在是否不可用。
答案1
到测试无论服务器是否允许某种算法,最简单的方法是尝试使用它进行连接,看看服务器是否接受它,如以下示例:
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;它实际上并没有被破解,但如果你发送 GB 级的数据,被动对手可能能够检测到重复的密码块,但(使用 CBC)不会检测到它是重复的明文,这在加密理论中是一个“突破”,但在实践中不太可能有任何用处。如果你想浪费时间钻研这个漏洞,请参阅 crypto.SX 或可能的 security.SX。
hmac-sha1 和 ssh-rsa 或 ssh-dss(都使用 sha1)实际上也没有被破坏,但不再被认为提供足够的安全边际。
如果你想看除了(可能的)客户端身份验证之外的所有服务器允许的算法,只需建立连接然后ssh -vv
查看输出的这一部分:
debug2: peer server KEXINIT proposal
debug2: KEX algorithms: curve25519-sha256,[email protected],ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group16-sha512,diffie-hellman-group18-sha512,diffie-hellman-group14-sha256,diffie-hellman-group14-sha1
debug2: host key algorithms: ssh-rsa,rsa-sha2-512,rsa-sha2-256,ecdsa-sha2-nistp256,ssh-ed25519
debug2: ciphers ctos: [email protected],aes128-ctr,aes192-ctr,aes256-ctr,[email protected],[email protected]
debug2: ciphers stoc: [email protected],aes128-ctr,aes192-ctr,aes256-ctr,[email protected],[email protected]
debug2: MACs ctos: [email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],hmac-sha2-256,hmac-sha2-512,hmac-sha1
debug2: MACs stoc: [email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],hmac-sha2-256,hmac-sha2-512,hmac-sha1
debug2: compression ctos: none,[email protected]
debug2: compression stoc: none,[email protected]
对于除客户端身份验证之外的所有内容,以及此(后面)部分(可能会根据服务器软件省略):
debug1: SSH2_MSG_EXT_INFO received
debug1: kex_input_ext_info: server-sig-algs=<ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521>
用于客户端身份验证(即被接受服务器)。