Openssh升级到9.2版本

操作系统:centos7.6

1、安装依赖

yum install gcc gcc-c++ zlib-devel pam-devel openssl-devel make vim wget -y
备份之前的ssh
mv /etc/ssh{,.bak}

2、openssl升级

openssh会依赖openssl,某些系统默认的openssl版本可能不满足openssh9.2,所以需要升级openssl。
查看openssl版本
openssl version
查看openssl命令的路径
which openssl

下载openssl软件包

官方地址:https://www.openssl.org/source/
wget https://www.openssl.org/source/old/1.1.1/openssl-1.1.1n.tar.gz --no-check-certificate

perl升级

openssl会依赖perl,升级openssl过程中经常会先升级perl。
官方地址:https://www.perl.org/get.html
下载perl
wget https://www.cpan.org/src/5.0/perl-5.36.0.tar.gz ----no-check-certificate
解压
tar xzvf perl-5.36.0.tar.gz
创建安装目录
mkdir /usr/local/perl
配置及安装

点击查看代码
cd perl-5.36.0/
./Configure -des -Dprefix=/usr/local/perl -Dusethreads -Uversiononly
# 编译安装
make && make install
# 备份老版本perl
mv /usr/bin/perl{,.bak}
# 将perl指向最新版
ln -s /usr/local/perl/bin/perl /usr/bin/perl

查看perl版本
image

openssl升级

解压openssl
tar xzvf openssl-3.0.8.tar.gz
编译安装

点击查看代码
cd openssl-3.0.8/
./config --prefix=/usr/local/openssl shared zlib

Operating system: x86_64-whatever-linux2
Configuring OpenSSL version 1.1.1n (0x101010efL) for linux-x86_64
Using os-specific seed configuration
Creating configdata.pm
Creating Makefile
 
**********************************************************************
***                                                                ***
***   OpenSSL has been successfully configured                     ***
***                                                                ***
***   If you encounter a problem while building, please open an    ***
***   issue on GitHub <https://github.com/openssl/openssl/issues>  ***
***   and include the output from the following command:           ***
***                                                                ***
***       perl configdata.pm --dump                                ***
***                                                                ***
***   (If you are new to OpenSSL, you might want to consult the    ***
***   'Troubleshooting' section in the INSTALL file first)         ***
***                                                                ***
**********************************************************************

# 编译安装
make && make install

备份当前openssl
mv /usr/lib64/openssl{,.bak}
mv /usr/bin/openssl{,.bak}
使用新版openssl
ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
ln -s /usr/local/openssl/include/openssl /usr/include/openssl
更新动态链接库数据
echo "/usr/local/openssl/lib64/" >> /etc/ld.so.conf
重新加载动态链接库
ldconfig -v
查看安装后版本
openssl version
如果出现
image
是由于openssl库的位置不正确造成的
执行如下操作
ln -s /usr/local/openssl/lib64/libssl.so.3 /usr/lib/libssl.so.3
ln -s /usr/local/openssl/lib64/libcrypto.so.3 /usr/lib/libcrypto.so.3

升级openssh

外网下载openssh安装包,下载后拷贝到需要升级的服务器上
wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.2p1.tar.gz
安装openssh

点击查看代码
tar xzvf openssh-9.2p1.tar.gz
cd openssh-9.2p1
./configure --prefix=/usr/local/openssh --sysconfdir=/etc/ssh --with-pam --with-zlib --with-md5-passwords --with-tcp-wrappers

#如果编译安装了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 --without-hardening

#判断一下是否成功,如果返回零则继续
echo $?

#安装
make && make install

修改sshd配置文件
vim /etc/ssh/sshd_config
PermitRootLogin yes
配置启动脚本
sudo cp /root/soft/openssh-9.2p1/contrib/redhat/sshd.init /etc/init.d/sshd
vim /etc/init.d/sshd
修改SSHD=/usr/local/openssh/sbin/sshd

替换执行命令,替换前可以对相关的几个文件进行单独备份
sudo cp -arp /usr/local/openssh/bin/* /usr/bin/
重启服务并配置自启
/etc/init.d/sshd restart
chkconfig sshd on
查看openssh版本号
ssh -V

posted @ 2023-02-27 16:01  村尚chun叔  阅读(1955)  评论(0编辑  收藏  举报