Заголовки OpenSSL отсутствуют при сборке OpenSSH

Я хочу собрать определенную версию OpenSSH с определенной версией OpenSSL из исходников, но получаю следующую ошибку:

mkdir /tmp/ssh
cp openssh-6.7p1.tar.gz /tmp/ssh
cp openssl-1.0.1l.tar.gz /tmp/ssh
cd /tmp/ssh
tar zxvf openssl-1.0.1l.tar.gz
cd openssl-1.0.1l
./config --prefix=/tmp/ssh
make
make install
cd ..
tar zxvf openssh-6.7p1.tar.gz
cd openssh-6.7p1
./configure --with-ssl-dir=/tmp/ssh --prefix=/tmp/ssh

...
checking openssl/opensslv.h usability... no
checking openssl/opensslv.h presence... no
checking for openssl/opensslv.h... no
configure: error: *** OpenSSL headers missing - please install first or check config.log ***

Есть ли ошибка в сценарии настройки openSSH или мне нужно изменить какую-либо команду?


person name    schedule 19.05.2015    source источник


Ответы (4)


Вот способ без отправки флагов на ./configure Сначала вам нужно установить OpenSSL. Загрузите последнюю версию архива здесь.

./config
make
make test
make install

Затем установите libssl-dev.

apt-get install libssl-dev

Затем вы можете повторить установку OpenSSH:

cd openssh-[version]
./configure
make
make install
person Ann Kilzer    schedule 15.01.2016

ftp://ftp.ca.openbsd.org/pub/OpenBSD/OpenSSH /portable/INSTALL говорит:

LibreSSL/OpenSSL должен быть скомпилирован как позиционно-независимая библиотека (т. е. с параметром -fPIC), иначе OpenSSH не сможет связать ее. Если вы должны использовать libcrypto, не зависящий от позиции, вам может потребоваться настроить OpenSSH --without-pie.

Следующие команды больше не приводят к ошибке «Отсутствуют заголовки OpenSSL»:

tar zxvf openssl-1.0.1l.tar.gz
cd openssl-1.0.1l
./config --prefix=/tmp/ssh
make
make install
cd ..
tar zxvf openssh-6.7p1.tar.gz
cd openssh-6.7p1
./configure --with-ssl-dir=/tmp/ssh --prefix=/tmp/ssh --without-pie
person name    schedule 19.05.2015
comment
В качестве альтернативы можно использовать ./config --prefix=/tmp/ssh shared и LD_LIBRARY_PATH=/tmp/ssh/lib ./configure --prefix=/tmp/ssh --with-ssl-dir=/tmp/ssh . - person name; 20.05.2015
comment
Я делаю как ваш код, и ./configure успешно, независимо от того, с --without-pie или нет. Но во время make выяснилось, что: - person shih alex; 12.10.2020
comment
Я просто не могу найти проблему. Не могли бы вы помочь мне с этим? Моя цель - установить openssh-server с пользователем, не имеющим прав sudo, мой сервер GPU примерно такой, и я хочу включить SSH и SFTP, чтобы я мог использовать сервер в качестве удаленного интерпретатора SSH в Jetbrains Pycharm. - person shih alex; 12.10.2020

Есть ли ошибка в сценарии настройки openSSH или мне нужно изменить какую-либо команду?

Согласно Установка OpenSSL и OpenSSH:

Если «configure» не может найти ssl, измените команду configure на:

./configure --prefix=/usr --with-ssl-dir=/usr/local/ssl --with-tcp-wrappers

Вышеупомянутое означает, что заголовки OpenSSL расположены по адресу /usr/local/ssl/include, а библиотеки — по адресу /usr/local/ssl/lib. Я думаю, вам нужно изменить путь на /tmp/ssh.


От:

cd openssl-1.0.1l
./config --prefix=/tmp/ssh
...

Я думаю, вы должны использовать:

cd openssl-1.0.1l
./config --openssldir=/tmp/ssh/openssl
...

Также см. Компиляция и установка на вики OpenSSL. Возможно, вы захотите использовать другие параметры, например enable-ec_nistp_64_gcc_128.


С OpenSSL в /tmp/ssh/openssl тогда:

cd openssh-6.7p1
./configure --with-ssl-dir=/tmp/ssh/openssl --prefix=/tmp/ssh
...

Использование несистемного OpenSSL может вызвать проблемы. Поэтому вы также можете ознакомиться с Сборка OpenSSL с помощью RPATH?. Вы также можете собрать OpenSSH с RPATH.

person jww    schedule 19.05.2015
comment
Изменение ./config --prefix=/tmp/ssh на ./config --openssldir=/tmp/ssh/openssl и изменение ./configure --with-ssl-dir=/tmp/ssh --prefix=/tmp/ ssh в ./configure --with-ssl-dir=/tmp/ssh/openssl --prefix=/tmp/ssh приводит к той же ошибке отсутствия заголовков OpenSSL. - person name; 20.05.2015

Вот решение этой ошибки отсутствия заголовков OpenSSL.

git clone https://github.com/openssl/openssl.git
cd openssl
./Configure
make
make install

Теперь OpenSSL будет установлен, и вы больше не будете получать сообщение об отсутствии заголовков OpenSSL.

person Community    schedule 13.03.2021