You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu 14.04中如何让OpenSSH关联已安装的新版OpenSSL?

问题:升级OpenSSL后OpenSSH仍关联旧版本

我的Ubuntu 14.04服务器初始安装了OpenSSH 6.6和OpenSSL 1.0.1f,先通过以下命令升级了OpenSSH:

sudo apt install -y build-essential libssl-dev zlib1g-dev
wget "https://mirror.edgecast.com/pub/OpenBSD/OpenSSH/portable/openssh-7.4p1.tar.gz"
tar xfz openssh-7.4p1.tar.gz
cd openssh-7.4p1
./configure
make
sudo make install && sudo service ssh restart && ssh -V

执行后输出:

OpenSSH_7.4p1, OpenSSL 1.0.1f

之后单独升级了OpenSSL:

sudo wget "https://www.openssl.org/source/openssl-1.0.2n.tar.gz"
tar xfz openssl-1.0.2n.tar.gz
cd openssl-1.0.2n/
./config
make
sudo make install

执行后运行openssl version得到:

OpenSSL 1.0.2n

但ssh -V仍显示:

OpenSSH_7.4p1, OpenSSL 1.0.1f

请问如何让ssh -V返回OpenSSH_7.4p1, OpenSSL 1.0.2n?


解决方案

OpenSSH在编译阶段会绑定使用的OpenSSL库,你之前编译OpenSSH时调用的是系统默认的旧版OpenSSL,后续升级OpenSSL不会自动更新已编译完成的SSH程序,必须重新编译OpenSSH并指定新OpenSSL的安装路径。

具体操作步骤:

  1. 确认新OpenSSL的安装路径
    默认编译安装的OpenSSL通常位于/usr/local/ssl,可通过以下命令验证:
ls -l /usr/local/ssl/
  1. 清理旧编译文件
    回到之前的OpenSSH源码目录,清理上次编译生成的文件:
cd openssh-7.4p1
sudo make clean
  1. 重新配置编译参数
    指定新的OpenSSL路径进行配置:
./configure --with-ssl-dir=/usr/local/ssl

如果需要覆盖系统默认的SSH安装路径,可添加--prefix=/usr参数。

  1. 重新编译并安装
make
sudo make install
  1. 重启服务并验证版本
sudo service ssh restart
ssh -V

此时ssh -V应该会显示OpenSSH_7.4p1, OpenSSL 1.0.2n。

额外注意事项

  • 如果系统无法找到新的OpenSSL库,执行以下命令更新库缓存:
sudo ldconfig
  • 若编译时出现依赖错误,重新确认依赖包是否安装完整:
sudo apt install -y libssl-dev zlib1g-dev

内容的提问来源于stack exchange,提问作者nano_dorado

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 10:36:23