如何在chrony中启用SHA1哈希函数?解决密钥生成报错问题
解决chrony keygen报错"Unknown hash function SHA1"的问题
咱们一步步排查解决这个问题:
1. 先检查chrony支持的哈希算法拼写
首先进入chronyc交互模式,输入以下命令查看官方支持的哈希函数列表:
chronyc > help keygen
或者直接输入keygen不带参数,它会输出所有可用算法。大概率是拼写问题——chrony里SHA1的标准写法是SHA-1(带连字符),而非SHA1。试试把命令改成:
chronyc> keygen 73 SHA-1 256
如果能正常执行,那就是个小拼写失误啦。
2. 若chrony确实不支持SHA-1:补全依赖后重新编译
如果上面的命令还是报错,说明你的chrony版本在编译时没启用SHA-1支持,这通常是因为缺少OpenSSL依赖。
步骤1:安装OpenSSL开发库
根据你的系统发行版执行对应命令:
- Debian/Ubuntu系:
sudo apt update && sudo apt install libssl-dev - CentOS/RHEL系:
sudo dnf install openssl-devel
步骤2:重新编译chrony并启用OpenSSL支持
- 先卸载当前包管理器安装的chrony:
# Debian/Ubuntu sudo apt remove --purge chrony # CentOS/RHEL sudo dnf remove chrony - 下载chrony稳定版源码包,解压后进入源码目录,执行配置命令:
这个参数会让chrony编译时链接OpenSSL库,从而获得SHA-1等哈希算法的支持。./configure --enable-openssl - 编译并安装:
make && sudo make install
3. 替代方案:使用默认支持的其他哈希算法
如果不想折腾重新编译,也可以改用chrony默认支持的算法(比如SHA256),命令如下:
chronyc> keygen 73 SHA256 256
不过如果你的场景必须用SHA-1,还是优先解决前面的依赖和编译问题。
内容的提问来源于stack exchange,提问作者Nfernandez
相关产品推荐
相关产品推荐

