openssl、openssh版本升级

 

 

 

注意:一定要先安装 gcc* make perl pam pam-devel zlib zlib-devel  openssl-devel这几个包

 

1.先可以用rpm -qa|grep 包名,查看需安装的包是否存在

 wKiom1gb6R-iePI1AAAJzJkrfp8456.png-wh_50

 

2.不存在的话,就使用yum安装所需的包,安装过程如下图所示:

 

wKiom1YoZ5fDPj4aAABPgPJk3-E745.jpg

wKioL1YoZ8Ow4pKPAAidCNH4Zik077.jpg


3.安装openssl

    先查看原系统的openssl、openssh版本

    wKioL1Yoairgvp-8AABeyE9hPx0421.jpg

                          

 看到的版本是5.3和1.0.1e的版本。

 

3.1安装openssl 
cd /usr/local/src
tar zxvf openssl-1.0.2d.tar.gz
cd openssl-1.0.2d
./config shared zlib
make 
make test
make install

mv /usr/bin/openssl/usr/bin/openssl.OFF
mv /usr/include/openssl /usr/include/openssl.OFF
cd /usr/local/ssl/bin#进入新安装的ssl的bin目录

cp openssl /usr/bin/#把新的openssl执行文件放到/usr/bin/目录下,或者做软链接也可以

cd /usr/local/ssl/lib

cp libssl.so.1.0.0 libcrypto.so.1.0.0 /usr/lib64#把这两个新的库文件放到库目录里

cd /usr/local/ssl/include#进入新安装的ssl的头文件目录

cp -r openssl /usr/include#把openssl的头文件放到系统的头文件目录

cd /usr/lib64#进入64为系统用户库目录

mkdir openssl#创建一个openssl的目录

cd /usr/local/ssl/lib#进入新安装的ssl的库目录

cp -r engines /usr/lib64/openssl#把engines目录下的几个文件,放到库文件里

engines里一般有下面几个文件

lib4758cca.so libaep.so libatalla.so libcapi.so libchil.so libcswift.so libgmp.so libnuron.so libpadlock.so libsureware.so libubsec.so

cd /usr/local/ssl/lib/pkgconfig

cp * /usr/lib64/pkgconfig

cp libcrypto.a libssl.a /usr/lib64


 

 

注意:本来可能有系统自带的软链接要先删除,库文件也可以打成bak删除或者挪到其它位置

rm -rf libssl.so

rm -rf libssl.so.10

rm -rf libcrypto.so

rm -rf libcrypto.so.10

rm -rf libssl.so.1.0.1e#也可以打成bak、删除或者挪到其它地方

rm -rf libcrypto.so.1.0.1e#也可以打成bak、删除或者挪到其它地方

ln -s libssl.so.1.0.0 libssl.so.10#做软链接

ln -s libssl.so.1.0.0 libssl.so#做软链接

ln -s libcrypto.so.1.0.0 libcrypto.so#做软链接

ln -s libcrypto.so.1.0.0 libcrypto.so.10#做软链接

下面执行yum应该不会报错。

 

 

3.2  配置库文件搜索路径 
#echo "/usr/local/ssl/lib" >> /etc/ld.so.conf
#ldconfig #加载库配置


3.3  查看openssl的版本号,以验正是否安装正确

openssl version -a
OpenSSL 1.0.2d 9 Jul 2015
openssl升级成功

 

3.4 更改openssl man路径

vim /etc/man.config

MANPATH /usr/local/ssl/man

使用man openssl可以查询openssl的一些使用命令。 

 

4.升级openssh

service sshd stop#停止后远程的链接也不会停止,建议先安装telnet,用telnet连接远程服务器进行升级。

 

4.1 先rpm -qa|grep openssh

查看原系统安装的openssh

rpm -qa|grep openssh
openssh-clients-5.3p1-104.el6.x86_64
openssh-server-5.3p1-104.el6.x86_64
openssh-5.3p1-104.el6.x86_64

 

然后rpm -e #删除原系统所带的包

rpm -e openssh-clients-5.3p1-104.el6.x86_64 openssh-server-5.3p1-104.el6.x86_64 openssh-5.3p1-104.el6.x86_64 --nodeps

cd /etc/ssh

rm -rf *

rm -rf /usr/bin/ssh

rm -rf /usr/sbin/sshd

 

4.2 安装新版本的openssh

tar zxvf openssh-6.9p1.tar.gz
cd openssh-6.9p1
./configure --prefix=/usr/local/ssh --sysconfdir=/etc/ssh --with-pam --with-zlib --with-ssl-dir=/usr/local/ssl --with-md5-passwords --mandir=/usr/share/man

make 
make install 


4.3 把安装好的bin目录和sbin目录下的所有可执行的程序,放到/usr/bin和相应的/usr/sbin下

cp /usr/local/ssh/bin/*  /usr/bin/
cp /usr/local/ssh/sbin/*  /usr/sbin/

 

4.3 查看openssh版本号,验证安装结果

 ssh  -V
OpenSSH_6.9p1, OpenSSL 1.0.2d 9 Jul 2015

 

4.4 复制启动脚本,并把服务加入开机启动

cp /usr/local/src/openssh-6.9p1/contrib/redhat/sshd.init /etc/init.d/sshd

chkconfig --add sshd

chkconfig sshd on

 

4.5 先测试一下

/usr/sbin/sshd -d

[root@localhost ~]# /usr/sbin/sshd -d
debug1: sshd version OpenSSH_6.9, OpenSSL 1.0.2d 9 Jul 2015
debug1: private host key #0: ssh-rsa SHA256:7CpPmQZrP3JnzpWl8/jAczoeXNsGPomjv/qwp4jnGyk
debug1: private host key #1: ssh-dss SHA256:yTMfo6c1LpnsvGGZ/CqZehmJhmZlEMGkArM9y+PctWQ
debug1: private host key #2: ecdsa-sha2-nistp256 SHA256:ksS9x368FlxVHoUYjU3D2UBixHnGlGpl0z3s2pUJ/W8
debug1: private host key #3: ssh-ed25519 SHA256:C62mZ/b9WturYDL3uR08A94JPuBvCF6nrSNkEDZusA0

 

4.6  启动服务

service sshd start

 

注意:机器远程升级ssh,启动sshd,用start或reload。不要restart,restart 会直接断开连接,而并不会接着启动sshd服务,这时候要通过其他途径进入机器,然后启动sshd服务才行

 

4.7  查看监听端口中是否有22 
#netstat -tnlp | grep :22 [root@localhost ~]# netstat -tunlp|grep :22
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      354/sshd           
tcp        0      0 :::22                       :::*                        LISTEN      354/sshd   


4.8 查看升级后的版本

wKiom1YoeBWQCKNrAABDIVoIEu0919.jpg

 

4.9 尝试从本机通过ssh登录

[root@localhost ~]#  ssh root@localhost
The authenticity of host 'localhost (::1)' can't be established.
ECDSA key fingerprint is SHA256:ksS9x368FlxVHoUYjU3D2UBixHnGlGpl0z3s2pUJ/W8.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'localhost' (ECDSA) to the list of known hosts.
root@localhost's password:
Permission denied, please try again.
root@localhost's password:
Last login: Tue Oct 13 14:32:21 2015 from 1.1.1.18
Login success. All activity will be monitored and reported

5.0 升级成功!