Debian9升级安装 OpenSSL 和OpenSSH到最新版记录

781 阅读2分钟

本地安装 SSL 和 SSH 说明文档

本指南适用于无 apt 工具的环境,详细介绍如何安装和升级 SSL(OpenSSL)和 SSH(OpenSSH),包括安装步骤、配置方法及常见问题解决方案。

1. 操作系统

系统版本:Debian GNU/Linux 9 (stretch)

2. 所需资源

请提前准备以下文件并上传至服务器的 tmp 目录:

  1. zlib

下载地址:github.com/madler/zlib…

  1. OpenSSL

下载地址:cdn.openbsd.org/pub/OpenBSD…

  1. OpenSSH

下载地址:cdn.openbsd.org/pub/OpenBSD…

3. 安装步骤

3.1 安装 zlib

  1. 解压安装包

tar -xvzf zlib-1.2.13.tar.gz

cd zlib-1.2.13

  1. 编译和安装

./configure --prefix=/usr/local

make

sudo make install

  1. 验证安装

ls /usr/local/lib | grep zlib

3.2 安装 OpenSSL

步骤 1:清理旧版本

  1. 检查是否存在旧版本:

openssl version

  1. 若存在手动安装的旧版本,移除旧版 OpenSSL:

sudo rm -rf /usr/local/openssl

  1. 确保环境变量中未包含旧版本路径:

编辑 ~/.bashrc 并删除相关路径:

nano ~/.bashrc

然后重新加载环境变量:

source ~/.bashrc

步骤 2:安装 OpenSSL

  1. 解压安装包

tar -xzvf openssl-3.0.12.tar.gz

cd openssl-3.0.12

  1. 配置编译选项

./Configure --prefix=/usr/local/openssl --openssldir=/usr/local/openssl shared zlib

  1. 编译和安装

make -j$(nproc)

sudo make install

  1. 配置环境变量

echo 'export PATH=/usr/local/openssl/bin:$PATH' >> ~/.bashrc

echo 'export LD_LIBRARY_PATH=/usr/local/openssl/lib64:/usr/local/openssl/lib:$LD_LIBRARY_PATH' >> ~/.bashrc

source ~/.bashrc

  1. 验证安装

openssl version

输出应为 OpenSSL 3.0.12。

  1. 更新动态链接库缓存

sudo ldconfig

3.3 安装 OpenSSH

步骤 1:清理旧版本

若系统已安装旧版本 OpenSSH,可通过以下命令清理:

sudo apt-get remove --purge openssh-server openssh-client

sudo rm -rf /usr/local/sbin/sshd /usr/local/bin/ssh /usr/local/libexec/ssh*

sudo rm -rf /usr/local/etc/ssh /etc/ssh /var/empty

步骤 2:安装新版本

  1. 解压安装包

tar -xzf openssh-9.9p1.tar.gz

cd openssh-9.9p1

  1. 配置编译选项

./configure --prefix=/usr/local/openssh --with-ssl-dir=/usr/local/openssl --with-zlib=/usr/local/lib

make

sudo make install

  1. 配置环境变量

export PATH=/usr/local/openssh/bin:$PATH

echo 'export PATH=/usr/local/openssh/bin:$PATH' >> ~/.bashrc

source ~/.bashrc

  1. 验证安装

ssh -V

输出应为:OpenSSH_9.9p1, OpenSSL 3.0.12

步骤 3:启动 SSH 服务

  1. 复制配置文件

sudo cp /usr/local/openssh/etc/sshd_config /etc/ssh/

  1. 启动服务

sudo /usr/local/openssh/sbin/sshd

  1. 验证服务是否运行

ps aux | grep sshd

4. 常见问题与解决方案

问题 1:编译 OpenSSH 时报错

报错信息

checking OpenSSL header version... failed  

configure: error: OpenSSL version test program failed.  

原因:安装 OpenSSL 后,动态链接库路径未正确配置。

解决方法

  1. 创建新的动态链接库配置文件:

echo "/usr/local/openssl/lib64" | sudo tee /etc/ld.so.conf.d/openssl.conf

  1. 更新动态链接库缓存:

sudo ldconfig

  1. 验证链接:

ldd /usr/local/openssl/bin/openssl

输出应包含 libssl.so.3。

问题 2:Host Key 指纹冲突

报错信息

The authenticity of host ... can't be established.  

解决方法

删除本地 ~/.ssh/known_hosts 中的冲突条目,然后重新连接。

问题 3:SSH 服务启动失败

报错信息:Privilege separation user sshd does not exist

解决方法

添加 sshd 用户:

sudo useradd -r -d /var/empty -s /usr/sbin/nologin sshd

通过上述步骤,可完成 SSL 和 SSH 的本地安装及升级,确保系统安全性和功能兼容性得到提升。