操作系统: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.32.1.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版本
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
如果出现
是由于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 ./contrib/redhat/sshd.init /etc/init.d/sshd
vim /etc/init.d/sshd
修改SSHD=/usr/local/openssh/sbin/sshd
替换执行命令,替换前可以对相关的几个文件进行单独备份
cp -arp /usr/local/openssh/bin/* /usr/bin/
重启服务并配置自启
/etc/init.d/sshd restart
chkconfig sshd on
查看openssh版本号
ssh -V