我该如何从源代码构建OpenSSH?

我尝试安装OpenSSH。
./configure
checking for openssl/opensslv.h... no
configure: error: *** OpenSSL headers missing

有什么想法吗?

正如jamespo所指出的那样,你确定要从源代码构建吗?如果发现任何漏洞,Openssh将成为一个相当重要的攻击向量,因此最好使用存储库以便获得安全更新。 - Egil
4个回答

如果可以选择的话,我会安装 openssh 服务器包:apt-get install openssh-server。但是如果您想要从源代码编译,请先安装 openssl。

无论是从源代码 这里 还是从包中安装:apt-get install libssl-dev openssl


要安装构建给定软件包所需的依赖项,您可以使用apt-get的build-dep选项,例如,apt-get build-dep openssh或apt-get build-dep openssh-server(如果您要构建服务器)。

很可能你缺少openssl的开发头文件。尝试安装"openssl-devel"。

@tijybba 你能删掉你的重复评论吗? - nanofarad

简单来说,下载、解压、配置、构建、安装

基本构建和安装步骤

以版本9.0p1为例:

wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.0p1.tar.gz
tar -xvf openssh-9.0p1.tar.gz
cd openssh-9.0p1
./configure
make
make install

便携版本

请确保下载便携版本源代码(除非运行OpenBSD操作系统)。

gpg验证

可选择在执行tar命令之前验证下载文件:

wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/RELEASE_KEY.asc
gpg --import RELEASE_KEY.asc
wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.0p1.tar.gz.asc
gpg --verbose --verify openssh-9.0p1.tar.gz.asc

构建依赖

如果在./configure命令期间缺少头文件或库,您可以使用apt查看内置OpenSSH的依赖项。

apt show openssh-server

列在Depends:下的软件包很可能足以构建下载的OpenSSH .tar文件。 使用apt install安装所需的依赖项。

我在我的Debian 10系统上安装了一些额外的软件包:

apt install \
  libssl-dev \
  gcc g++ gdb cpp \
  make cmake \
  libtool \
  libc6 \
  autoconf automake pkg-config \
  build-essential \
  gettext


我写了一个关于安装最新版OpenSSH的详细逐步说明。