强制升级openssl导致无法使用SSH(生成ssh公钥)

最近由于工作需求要搭建freeswitch,整个过程比较纠结,遂总结于此留作备忘。起源由于我的需求是将freeswitch跑起来,所以先按照freeswitchwiki上的介绍编译freeswitch,但configure过程便遇到问题:configure:error:OpenSSL>=1.0.1eandassociateddevelopementheadersrequi…

大家好,又见面了,我是你们的朋友全栈君。

最近由于工作需求要搭建freeswitch,整个过程比较纠结,遂总结于此留作备忘。

起源

由于我的需求是将freeswitch跑起来,所以先按照freeswitch wiki上的介绍编译freeswitch,但configure过程便遇到问题:

configure: error: OpenSSL >= 1.0.1e and associated developement headers required

很明显,系统的openssl版本过于古老, 而安装freeswitch的编译和运行需要openssl >= 1.0.0e,第一直觉就是先把openssl升级再说,无尽的折磨从此开始。

坑一:openssl编译

一般c项目的configure过程中会通过配置–prefix=xxx来设定被编译lib的安装目录,我一般习惯放到/usr/local/xxx,所以openssl也不例外,顺利安装到/usr/local/openssl-1.0.1h目录下,但freeswitch的configure还是一直提示openssl版本太低:

configure: error: OpenSSL >= 1.0.1e and associated developement headers required

不过很快意识到自己犯了个低级错误,编译默认搜索的header和lib还是系统自带的老版本openssl,于是在freeswitch的configure过程中显示设定openssl的相关路径:

./configure –prefix=/usr/local CFLAGS=”-I/usr/local/openssl-1.0.1h/include” LDFLAGS=”-L/usr/local/openssl-1.0.1h/lib”

一波未平一波又起,freeswitch的configure过程又抛出libcrypt.so需要recompile with -fPIC,看起来是openssl的config需要指定-fPIC来编译动态库,freeswitch通过动态链接的形式依赖openssl相关的库,于是加上shared和-fPIC后重新configure和make openssl:

./config shared –prefix=/usr/local/openssl-1.0.1h -fPIC

终于freeswitch的configure和make过了,长舒一口气,但一个更大的坑还在后面。

坑二:openssl链接

原以为freeswitch可以愉快的运行了,事与愿违,server无情的抛出以下错误:

symbol lookup error: /usr/local/lib/libfreeswitch.so.1: undefined symbol: EVP_aes_128_ctr

看起来是因为默认的sshd是用老版本openssl编译的,于是想到升级openssh,指定依赖最新版本的openssl,于是一阵download,configure,make,make install,这里需要注意的是openssh的configure参数配置需要手动指定openssl库的地址:

./configure –prefix=/usr/local/openssh –sysconfdir=/etc/ssh –with-pam –with-ssl-dir=/usr/local/openssl –with-md5-passwords –mandir=/usr/share/man –with-zlib=/usr/local/zlib

因为考虑到openssh的重要性,覆盖默认的ssh风险比较高,因此选择先安装到/usr/local/openssh,然后将/usr/sbin/sshd符号链接到/usr/local/openssh/sbin/sshd中:

首先停止正在运行的sshd服务:service sshd stop

备份老版本sshd文件,然后删除/usr/sbin/ssh

创建符号链接

启动sshd服务service sshd start

立马通过跳板机ssh登录来测试新版本openssh的效果,一切看起来完美!

总结

纠结了这么久,最后的效果就两点:

升级openssl,覆盖默认的老版本openssl,这里选择的是覆盖,即安装到/usr目录下,因为我没找到可以让freeswitch运行时手动指定openssl相关so路径的办法。

升级openssh,考虑到风险,先安装到/usr/local/openssh,然后通过符号链接将/usr/sbin/sshd链接到/usr/local/openssh/sbin/sshd

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/129133.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 小程序列表跳转至详情_小程序跳转链接怎么获取

    小程序列表跳转至详情_小程序跳转链接怎么获取效果展示:列表页js部分:onLoad:function(options){varthat=this;wx.request({url:’你的接口’,data:{ 接口参数},header:{‘content-type’:’ap…

    2022年8月19日
    3
  • mt4平台如何下载_mt4交易平台

    mt4平台如何下载_mt4交易平台当前我们若要顺势进场交易,除了要选择一个好的交易平台,一个实用的投资软件也必不可少。虽然目前市面上流行着多种mt4平台,优质型的不少,但也不乏“山寨版”,后者多为不法平台为了恶意操纵显示的行情以坑骗投资者的资金而自主研发的,危害性极大。那mt4平台哪个比较好用更安全呢?务必要留意其下载渠道的正规性,通常,正规安全有监管的平台具有好的市场口碑,能提供更可靠的投资环境,其专有的mt4平台是为安全的下载渠道。投资者除了要知道mt4平台哪个比较好用更好之外,还应充分了解下载何种软件更利于我们顺畅交易。考虑到当前

    2022年8月15日
    4
  • linux 进程抓包命令,linux抓包命令之tcpdump详解[通俗易懂]

    linux 进程抓包命令,linux抓包命令之tcpdump详解[通俗易懂]顾名思义,tcpdump可以将网络中传送的数据包的“头”完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息,tcpdump凭借强大的功能和灵活的截取策略,使其成为类UNIX系统下用于网络分析和问题排查的首选工具.实用命令实例:(1).默认启动#普通情况下,直接启动tcpdump将监视第一个网络接口上所有流过的数据包.[[…

    2022年6月17日
    69
  • thinkphp多用户在线客服系统源码-thinkPHP内核 附使用教程

    thinkphp多用户在线客服系统源码-thinkPHP内核 附使用教程步骤1请使用宝塔面板安装上传源码并且解压到网站很目录设置运行目录为public测试环境为php5.6mysql5.5伪静态选择为thinkphp宝塔安全放通:2080,9090这两个端口步骤2上方操作完毕后创建个数据库进行安装网站安装http://你的域名.com/install.php步骤3启动命令制定目录cd/www/wwwroot/你的网站目录/cgwl_pusher启动指令phpstart.phpstart-d如果没有运作起来根目录有个php5.6.

    2022年7月19日
    25
  • MapReduce 编程模型在日志分析方面的应用

    MapReduce 编程模型在日志分析方面的应用

    2021年8月14日
    58
  • kmo检验和bartlett球形检验_轻松搞懂:球形压力容器如何焊接安装?[通俗易懂]

    kmo检验和bartlett球形检验_轻松搞懂:球形压力容器如何焊接安装?[通俗易懂]球形压力容器简称“球罐”,与其他形式的容器相比,其重量与体积之比最小,受力均匀,可以承受较高的压力,是工业中普遍应用的大容积定容储气罐。在冶金工厂中,球罐常用于贮存氧气、氮气及保护气体等,以供氧气炼钢、富氧鼓风、轧钢热处理炉及煤气置换等生产所需用气。球罐由球体壳板(分赤道带、下温带、下寒带、上温带、上寒带和极顶板)、支柱、操作平台及管件等组成。球罐按其结构型式分为桔瓣式和混合式两种。根据…

    2022年6月29日
    26

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号