open全部操作请使用root 一、前序准备条件 wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-8.3p1.tar.gz wget http://www.openssl.org/source/openssl-1.1.1g.tar.gz mkdir /data/lib64-bak cp -p /usr/lib64/libssl.so.1.* /data/lib64-bak/ cp -p /usr/lib64/libcrypto.so.1.* /data/lib64-bak/
二、升级openssl环境至openssl-1.1.1g –(1)查看源版本 [root@zj ~]# openssl version -a OpenSSL 1.0.2e-fips-rhel5 01 Jul 2008
yum install -y zlib–(2)卸载原有openssl
rpm -qa| grep openssl rpm -e `rpm -qa | grep openssl` --nodeps–(3)解压安装 tar zxf openssl-1.1.1g.tar.gz cd openssl-1.1.1g ./config shared zlib make make install mv /usr/bin/openssl /usr/bin/openssl.bak mv /usr/include/openssl /usr/include/openssl.bak ln -s /usr/local/bin/openssl /usr/bin/openssl ln -s /usr/local/include/openssl /usr/include/openssl echo “/usr/local/lib” >> /etc/ld.so.conf ldconfig -v –(4)查看是否升级成功 openssl version -a
OpenSSL 1.1.1g 7 Apr 2014
–(5)***遇到openssl: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory执行以下 ln -s /usr/local/lib64/libssl.so.1.1 /usr/lib64/libssl.so.1.1 ln -s /usr/local/lib64/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1
三、Openssh-8.4P1修复 –(1)检查openssh rpm -qa|grep openssh
–(2)避免openssh失败无法登陆安装telnet --连网或者单机传包 rpm -Uvh telnet-server-0.17-64.el7.x86_64.rpm rpm -Uvh xinetd-2.3.15-13.el7.x86_64.rpm
yum install -y telnet-server xinetd注意:yum如果报错的话是因为缺少文件,即执行下面四的步骤即可 echo -e ‘pts/0\npts/1\npts/2\npts/3’ >>/etc/securetty systemctl enable xinetd.service systemctl enable telnet.socket systemctl start telnet.socket systemctl start xinetd
–(3)验证telnet已可用,通过telnet23端口连接主机
–(4)安装必要的软件:–连网或者单机传包 gcc pam pam-devel zlib zlib-devel openssl-devel rpm -Uvh 程序包名
yum -y update pam zlib
yum -y install gcc pam pam-devel zlib zlib-devel openssl-devel
–(5)卸载旧的openssh
rpm -e `rpm -qa | grep openssh` --nodeps–(6)解压编译
tar -zxvf openssh-8.4p1.tar.gz
cd openssh-8.4p1
./configure --prefix=/usr --sysconfdir=/etc/ssh --with-md5-passwords --with-zlib --with-ssl-dir=/usr/local/ssl --with-privsep-path=/var/lib/sshd
make
make install
如果遇到如下报错:chmod 600 /etc/ssh/ssh_host_*
chmod 600 /etc/ssh/ssh_host_rsa_key chmod 600 /etc/ssh/ssh_host_ed25519_key chmod 600 /etc/ssh/ssh_host_ecdsa_key
#修订配置文件 echo ‘PermitRootLogin no’ >> /etc/ssh/sshd_config (注意:执行这句代表root不能登录,请根据情况操作) cp -p contrib/redhat/sshd.init /etc/init.d/sshd chmod +x /etc/init.d/sshd chkconfig --add sshd
#加入开机启动 chkconfig sshd on chkconfig --list sshd service sshd start
#停止telnet服务 systemctl stop telnet.socket systemctl disable telnet.socket systemctl stop xinetd.service systemctl disable xinetd.service
四、整体验证,及修复 –(1)测试yum ping ssh cp等命令以及上传、重新打开新的ssh连接情况 cp /data/lib64-bak/* /usr/lib64/ cd /usr/lib64/ ll libssl* ll libcrypt*
–(2)将原来备份的libssl和libcrypto进行软连接 ln -s libssl.so.1.0.1e /usr/lib64/libssl.so.10 ln -s libcrypto.so.1.0.1e /usr/lib64/libcrypto.so.10
–(3)再次验证之前使用有问题的功能 查看当前openssh和openssl版本 ssh -V openssl version -a
最近新发现的一个问题rpm会因为升级openssl而报错
解决:下载rpm依赖包