适用于centos,redhat,unbuntu的openssh升级方法

ssh修复升级方案.docx

一、下载最新版本 OpenSSH

从https://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/下载最新版本openssh-8.2p1.tar.gz,放在了/home/ssh目录下(没有要求)

二、编译安装 OpenSSH

tar xzvf openssh-8.2p1.tar.gz

cd openssh-8.2p1

./configure --prefix=/usr --sysconfdir=/etc/ssh 配置文件路径必须是/etc/ssh (如果提示缺少某依赖文件, 可以先安装依赖包)

三、把老版本的ssh放到另外一个目录,这步是关键,这样就不用卸载旧版本

mkdir /etc/sshbak  新建文件夹

mv  /etc/ssh/* /etc/sshbak/  备份原文件

四、编译源码包

make&&make install

五、编译安装成功后,进行配置

cp /home/ssh/openssh-8.2p1/opensshd.init  /etc/init.d/sshd  复制启动文件

注意:这里的opensshd.init脚本是在openssh安装包中,与你安装包存放路径有关,如果不是放在/home/ssh,则需要做修改

chmod +x /etc/init.d/sshd 修改权限

修改配置文件 /etc/ssh/sshd_config

#Port 22  去掉注释#

#PermitRootLogin prohibit-password

去掉注释并改为    PermitRootLogin yes

注意:必须去掉注释,不然重启后ssh无法连接

六、重启

service  sshd  restart

使用ssh -V 命令查看,这里ssh的版本已升级为8.2。

最关键的一步就是把老的ssh文件夹移到其他地方,然后新的ssh的目录仍然放在/etc/ssh下面,这样的升级过程中ssh就不会断开。

七、问题汇总

当然在安装的过程中并不是都那么顺利,会出现各种问题

在运行./configure的时候提示libcrypto not found错误,那可能是缺少依赖

安装依赖

apt  install  libzip-dev  libssl-dev libxml2 openssl-devel

openssl library not found

可能openssl不是默认路径urs/local/ssl,设置下实际路径,不然会报错,一般可以在usr/local路径下查找

./configure   --with-ssl-dir=ssl的实际路径

如果运行./configure出现 zlib.h missing,则需要安装zlib源码文件

下载解压,编译安装

wget http://www.zlib.net/zlib-1.2.11.tar.gz

tar -zxvf zlib-1.2.11.tar.gz

cd zlib-1.2.11

./configure --prefix=/usr/local

make

make install

出现关于openssl的问题,则更新升级openssl

下载解压,编译安装

wget https://www.openssl.org/source/openssl-1.1.1.tar.gz --no-check-certificate

tar -zxvf openssl-1.1.1.tar.gz

apt purge openssl

cd ../openssl-1.1.1

./config shared --prefix=/usr/local/ssl

make test

make install

ln -s /usr/local/ssl/lib/libssl.so.1.1 /usr/lib/libssl.so.1.1

ln -s /usr/local/ssl/lib/libcrypto.so.1.1 /usr/lib/libcrypto.so.1.1

发布了2 篇原创文章 · 获赞 5 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/liuchunlei/article/details/105372021
今日推荐