由于未找到 OpenSSL 库,无法编译 openssh

Posted

技术标签:

【中文标题】由于未找到 OpenSSL 库,无法编译 openssh【英文标题】:cannot compile openssh due to OpenSSL library not found 【发布时间】:2018-07-07 16:23:30 【问题描述】:

我基于16.04,尝试从源码安装openssh

sudo apt install -y build-essential libssl-dev zlib1g-dev
wget "http://mirrors.evowise.com/pub/OpenBSD/OpenSSH/portable/openssh-7.4p1.tar.gz"
tar xfz openssh-7.4p1.tar.gz
cd openssh-7.4p1
./configure

在尝试配置时,我收到以下错误消息:

checking OpenSSL header version... 10101000 (OpenSSL 1.1.1-dev  xx XXX xxxx)
checking OpenSSL library version... not found
configure: error: OpenSSL library not found.

检查路径 /usr/local/ssl# ls 显示以下文件

证书 ct_log_list.cnf.dist openssl.cnf 私有 ct_log_list.cnf misc openssl.cnf.dist

我已经安装了 libssl 库,但我不知道为什么它没有找到 openssl 库。

如何解决

【问题讨论】:

试试configure --help。注意--with-openssl-dir--with-zlib。我上次检查 OpenSSH 时没有针对 OpenSSL 1.1.0 构建。另请参阅 OpenSSH PR 48, Make it build using OpenSSL 1.1.0。如果这是您的问题,那么您应该退回到 OpenSSL 1.0.2。另请参阅 OpenSSL wiki 上的 OpenSSL 1.1.0 Changes。最后,我相信 OpenSSL 7.6p1 是最新的。 您可能还对Noloader Build-Scripts 感兴趣。它可以使用最新的 OpenSSL 1.0.2 为您构建 Open***。 有什么解决办法吗?我得到了同样的错误,我安装了 openssl 1.0.2o,我将 --with-ssl-dir=/usr/local/openssl-1.0.2o 添加到配置标志中。 【参考方案1】:

按照以下步骤交叉编译 openSSH:

请确保您已经编译并安装在特定目录中的 openssl,例如 /opt/usr/openssl,并且该目录具有 bin、lib、include 等子目录,其中包含 openssl 二进制文件、库和头文件。

从您的构建服务器 linux 机器,openssh 工作目录发出以下命令

bash-3.2$ 密码

/home/xxxxxx/projects/openssh/openssh-8.2p1

bash-3.2$ CC=ppc_6xx-gcc PATH=$PATH:/opt/eldk/ppc-v42-1/usr/bin ./configure --with-security-key-builtin --with-md5-passwords --with-ssl-dir=/opt/usr/openssl --prefix=/opt/usr/openssh

...

...

...

主机:x86_64-pc-linux-gnu 编译器:ppc_6xx-gcc 编译器标志:-g -O2 -pipe -Wall -Wpointer-arith -Wuninitialized -Wsign-compare -Wformat-security -Wno-pointer-sign -fno-strict-aliasing -D_FORTIFY_SOURCE=2 -ftrapv -fno-builtin-memset - fstack-protector-all -std=gnu99 -fPIE 预处理器标志:-I/opt/usr/include -D_XOPEN_SOURCE=600 -D_BSD_SOURCE -D_DEFAULT_SOURCE 链接器标志:-L/opt/ust/openssl/lib -Wl,-z,retpolineplt -Wl,-z,relro -Wl,-z,now -Wl,-z,noexecstack -fstack-protector-all -pie 库:-lresolv -lcrypto -lrt -ldl -lutil -lz -lcrypt

bash-3.2$

bash-3.2$ 制作

【讨论】:

以上是关于由于未找到 OpenSSL 库,无法编译 openssh的主要内容,如果未能解决你的问题,请参考以下文章

Emscripten 编译错误:“'openssl/sha.h' 文件未找到”

“库 openssl 未设置 python 依赖它,请启用”,同时编译访问可视化工具

C++ OpenSSL库编译及使用(VS2017,Python)

解决QT编译Android程序不支持openssl问题

解决QT编译Android程序不支持openssl问题

OPC UA open62541历史数据读取客户端未编译