启用了FIPS模式的系统下,生成SSH密钥出现问题,可能原因是因为加密算法和操作在FIPS模式下被禁用,导致标准的SSH密钥生成工具没有办法正常工作。华纳云总结了常用的解决方案如下!
在FIPS模式下,某些加密算法是不允许的,如RSA,可以通过明确指定使用这些算法来生成SSH密钥:
ssh-keygen -t rsa -b 2048
当直接生成密钥方法不可用,可以还可以通过编辑OpenSSH配置文件,这样确保其使用兼容FIPS模式的算法。先编辑SSH配置文件,打开还可以通过编辑OpenSSH配置文件:
sudo nano /etc/ssh/sshd_config
强制使用兼容算法,添加或修改以下行:
Ciphers aes256-ctr,aes192-ctr,aes128-ctr
MACs hmac-sha2-256,hmac-sha2-512
KexAlgorithms diffie-hellman-group14-sha1
保存配置文件,并重启SSH服务:
sudo systemctl restart sshd
在一些情况下,还可以通过手动生成符合FIPS标准的密钥,并将其转化为SSH使用的格式。生成符合FIPS标准的密钥,使用OpenSSL 生成 RSA 密钥:
openssl genpkey -algorithm RSA -out rsa_key.pem -aes256
将生成的密钥转换为 OpenSSH 格式:
ssh-keygen -i -m PKCS8 -f rsa_key.pem > rsa_key
为生成公钥:
ssh-keygen -y -f rsa_key > rsa_key.pub
如果以上方法不能解决问题,建议确认系统配置和环境。确保系统配置正确,且没有其他限制到只FIPS模式下不能正常生成SSH密钥。
确保FIPS模式的正确启动:
cat /proc/sys/crypto/fips_enabled
输出结果是1表示FIPS模式启用。
为确保兼容性和安全性,保持系统和OpenSSH 版本为最新。
sudo apt update && sudo apt upgrade
以上方式,可以帮助在启用FIPS模式下成功生成SSH密钥。关键的是保证使用的加密算法和密钥生成方法是符合FIPS标准的。根据实际情况选择合适的方法进行操作,可以解决在FIPS强制模式下生成SSH密钥的问题。如需帮助,可与华纳云联系!