Upgrade OpenSSH to 7.7p1 in CentOS 6
Last edited by Junyangz AT 2018-06-09 10:08:21
Install telnet and basic environment
Installation
yum -y install telnet-server* telnet
yum -y install gcc-c++,zlib,zlib-devel,openssl,openssl-devel,pam-develEnable telnet service
# vi /etc/xinetd.d/telnet
# 将其中disable字段的yes改为no以启用telnet服务
# mv /etc/securetty /etc/securetty.old #允许root用户通过telnet登录
# service xinetd start #启动telnet服务
# chkconfig xinetd on #使telnet服务开机启动,避免升级过程中服务器意外重启后无法远程登录系统Upgrade OpenSSL to 1.0.2.o
#!/bin/bash
# Copyright © 2018 Junyangz
cd
#mkdir ssh_upgrade && cd ssh_upgrade
#find / -name openssl
#find / -name "libssl*"
timestamp=$(date +%s)
#backup old OpenSSL
cp /usr/lib64/libcrypto.so.10 /usr/lib64/libcrypto.so.10-${timestamp}
cp /usr/lib64/libssl.so.10 /usr/lib64/libssl.so.10-${timestamp}
mv /usr/bin/openssl /usr/bin/openssl-${timestamp}
mv /usr/include/openssl /usr/include/openssl-${timestamp}
mv /usr/lib64/openssl/engines /usr/lib64/openssl/engines-${timestamp}
mv /usr/lib64/openssl /usr/lib64/openssl-${timestamp}
#remove old OpenSSL rpm package
rpm -qa |grep openssl|xargs -i rpm -e --nodeps {}
#compile and install new OpenSSL
tar zxvf openssl-1.0.2o.tar.gz && cd openssl-1.0.2o
./config --prefix=/usr/local/openssl --openssldir=/etc/ssl --shared zlib&& make && make test && make install
ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
ln -s /usr/local/openssl/include/openssl /usr/include/openssl
echo "/usr/local/openssl/lib">>/etc/ld.so.conf
ldconfig
mv /usr/lib64/libcrypto.so.10-* /usr/lib64/libcrypto.so.10
mv /usr/lib64/libssl.so.10-* /usr/lib64/libssl.so.10
#ldconfig -v # for check
echo "OpenSSl version upgrades as to lastest:" && openssl version
#openssl version -a
# OpenSSL 1.0.2o 27 Mar 2018
# built on: reproducible build, date unspecified
# platform: linux-x86_64
# options: bn(64,64) rc4(16x,int) des(idx,cisc,16,int) idea(int) blowfish(idx)
# compiler: gcc -I. -I.. -I../include -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -Wa,--noexecstack -m64 -DL_ENDIAN -O3 -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM
#OPENSSLDIR: "/usr/local/openssl/ssl"
#echo "New version upgrades as to lastest:" && $(ssh -V)Upgrade OpenSSH to 7.7p1
RPM
最终批量更新使用RPM包的形式来进行详情参考。
Build OpenSSH RPM on CentOS 6.5
Batch update
For CentOS 6.5
For CentOS 6.4
Update openssl first for CentOS 6.4 (add openssl-1.0.1e-57.el6.x86_64.rpm and openssl-devel-1.0.1e-57.el6.x86_64.rpm for update)
整个升级过程不会中断ssh连接,但这种升级方式会禁止root密码登录,如需开启需修改/etc/ssh/sshd_config文件后重启sshd。
附PermitRootLogin参数解释:
Summary
目前已批量更新了虚拟机集群,待测试稳定无问题后再升级物理机集群。 已更新完集群所有机器。
Last updated
Was this helpful?