openssl,openssh升级


准备相关的包
openssh下载地址:http://mirror.internode.on.net/pub/OpenBSD/OpenSSH/portable/
openssl相关包下载:http://www.openssl.org/source/
pam相关包下载:http://pkgs.org/centos-6/centos-x86_64/
zlib包下载: http://zlib.net/

一、简单版(centos 7)

1、下载最新版openssh,链接如下
http://www.openssh.com/portable.html

备份以下文件:

/etc/ssh/sshd_config

/etc/pam.d/sshd

2、安装依赖包

yum update -y
yum install -y gcc  gcc-c++ zlib-devel openssl-devel pam* pam-devel*

3、安装软件包
tar -zxf  openssh-8.8p1.tar.gz  #解压tar文件
cd openssh-8.8p1
./configure                      #检测环境是否满足
make                             #编译
make install                     #安装
service sshd restart             #重启

二、复杂版

1、升级zlib
# tar -zxvf zlib-1.2.11.tar.gz
# cd zlib-1.2.11
#CFLAGS="-O3 -fPIC" ./configure --prefix=/usr/local/zlib
#make && make install

2、更新pam的rpm包。不然configure openssh的时候会报错

yum install pam* pam-devel*
注意:以下安装时,请务必再开一个SSH窗口连接所需要升级的服务器,避免ssh升级失败后,无法连接服务器。

3、编译安装openssl

删除旧版本

#rpm -e `rpm -qa | grep openssl` --allmatches --nodeps
# tar -zxvf openssl-1.0.2l.tar.gz
# cd openssl-1.0.2l
#./config -fPIC --prefix=/usr/local/openssl/ --openssldir=/usr/local/openssl/ shared zlib-dynamic enable-camelia
#make && make install

# mv /usr/bin/openssl /usr/bin/openssl.old

# mv /usr/include/openssl /usr/include/openssl.old

# 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 -v

#openssl version

查看openssl版本显示OpenSSL 1.0.2l  25 May 2017

解决升级openssl后yum问题:

#cd openssl-1.0.2l

#cp libssl.so.1.0.0 libcrypto.so.1.0.0 /usr/lib64/

# ln -s /usr/lib64/libssl.so.1.0.0 /usr/lib64/libssl.so

# ln -s /usr/lib64/libssl.so.1.0.0 /usr/lib64/libssl.so.10 

# ln -s /usr/lib64/libcrypto.so.1.0.0 /usr/lib64/libcrypto.so

# ln -s /usr/lib64/libcrypto.so.1.0.0 /usr/lib64/libcrypto.so.10

4、编译安装openssh

删除旧版本

# rpm -e `rpm -qa | grep openssh` --allmatches --nodeps   或  yum remove openssh
# tar -zxvf openssh-7.5p1.tar.gz 
# cd openssh-7.5p1

# ./configure --with-zlib=/usr/local/zlib --with-ssl-dir=/usr/local/openssl --with-md5-passwords --with-pam --bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc/ssh

#make && make install

#ssh -V

复制启动脚本到/etc/init.d

# cp /home/openssh-xxx/contrib/redhat/sshd.init /etc/init.d/sshd

加入开机自启

# chkconfig --add sshd

开启root登录:
vi /etc/ssh/sshd_config
把PermitRootLogin去掉#后,改为:PermitRootLogin yes

5、直接启动ssh服务。
service sshd start