注意:
RHEL 8 的 SSH 加密算法默认会使用来自 crypto policies 系统的全局 SSH 加密算法,而此方法将让 SSH 使用单独设置的 SSH 加密算法。
正文:
步骤一:启用 SSH 配置文件里加密方式 (cipher) 、信息验证代码 (message authentication code)和算法 (algorithm) 的设置
1.1 备份 /etc/sysconfig/sshd 配置文件
# cp /etc/sysconfig/sshd /etc/sysconfig/sshd_backup
1.2 修改 /etc/sysconfig/sshd 配置文件
# vim /etc/sysconfig/sshd
将以下内容:
# CRYPTO_POLICY=
修改为:
......
CRYPTO_POLICY=
......
步骤二:在 /etc/ssh/sshd_config 配置文件中设置要使用的 Ciphers、MACs 和 KexAlgorithm 参数
2.1 备份 /etc/ssh/sshd_config 配置文件
# cp /etc/ssh/sshd_config /etc/ssh/sshd_config_backup
2.2 在 /etc/ssh/sshd_config 配置文件中添加要使用的 Ciphers、MACs 和 KexAlgorithms 参数
# vim /etc/ssh/sshd_config
添加以下内容:
......
Ciphers aes256-ctr,aes192-ctr,aes128-ctr
MACs hmac-sha2-512,hmac-sha2-256
KexAlgorithms ecdh-sha2-nistp521,ecdh-sha2-nistp384,ecdh-sha2-nistp256,diffie-hellman-group-exchange-sha256
(
补充:这里以使用:
1) aes256-ctr、aes192-ctr 和 aes128-ctr SSH 加密方式 (cipher)
2) hmac-sha2-512 和 hmac-sha2-256 SSH 信息验证代码 (message authentication code)
3) ecdh-sha2-nistp521、ecdh-sha2-nistp384、ecdh-sha2-nistp256 和 diffie-hellman-group-exchange-sha256 SSH 算法 (algorithm)
为例
)
2.3 让在 /etc/ssh/sshd_config 配置文件中添加要使用的 Ciphers、MACs 和 KexAlgorithms 参数生效
# systemctl restart sshd
步骤三:测试 SSH 加密方式 (cipher)和算法 (algorithm)
3.1 测试 SSH Ciphers 参数
3.1.1 测试某个 SSH 加密方式 (ciphers)
# ssh -vv -oCiphers=3des-cbc -oPort=22 192.168.0.1
(补充:这里以测试 IP 地址是 192.168.0.1,端口号是 22,有没有启用 3des-cbc SSH 加密方式 (cipher) 为例)
3.1.2 测试多个 SSH 加密方式 (ciphers)
# ssh -vv -oCiphers=3des-cbc,aes128-cbc,aes192-cbc,aes256-cbc -oPort=22 192.168.0.1
(补充:这里以测试 IP 地址是 192.168.0.1,端口号是 22,有没有启用 3des-cbc、aes128-cbc、aes192-cbc 和 aes256-cbc SSH 加密方式 (cipher) 为例)
3.2 测试 SSH MACs 参数
3.2.1 测试某个 SSH ciphers 加密算法
# ssh -vv -oMACs=hmac-md5 -oPort=22 192.168.0.1
(补充:这里以测试 IP 地址是 192.168.0.1,端口号是 22,有没有启用 hmac-md5 SSH 信息验证代码 (message authentication code) 为例)
3.2.2 测试多个 SSH ciphers 加密算法
# ssh -vv -oMACs=hmac-md5,hmac-md5-96,hmac-sha1,hmac-sha1-96,hmac-md5-etm@openssh.com,hmac-md5-96-etm@openssh.com -oPort=22 192.168.0.1
(补充:这里以测试 IP 地址是 192.168.0.1,端口号是 22,有没有启用 hmac-md5、hmac-md5-96、hmac-sha1、hmac-sha1-96、hmac-md5-etm@openssh.com 和 hmac-md5-96-etm@openssh.com SSH 信息验证代码 (message authentication code) 为例)
3.3 显示所有在使用的 SSH 加密方式 (cipher)和算法 (algorithm)
3.3.1 使用 sshd 命令显示所有在使用的 SSH 加密方式 (cipher)和信息验证代码 (message authentication code)
# sshd -T | egrep -i "ciphers|macs"
3.3.2 使用 nmap 命令显示所有在使用的 SSH 加密方式 (cipher)和算法 (algorithm)
# nmap --script ssh2-enum-algos -sV -p 22 127.0.0.1
(补充:这里以测试 IP 地址是 192.168.0.1,端口号是 22 为例)
参考文献:
https://access.redhat.com/solutions/4410591
https://access.redhat.com/solutions/4278651