Centos/Redhat升级Openssh7.1p1记录
一、升级环境准备
1、如果是Redhat系统建议将yum源改为Centos的。安装方法详见http://blog.72ch.com/?p=151
2、开启telnet-server 功能
为防止openssl和ssh升级失败,建议在升级前打开主机的telent-server功能,确保升级失败时可以远程telnet连接。
安装telnet-server:
yum install telnet-server xinetd
修改允许telnet(如果之前配置过安全加固)
vi /etc/hosts.allow #添加如下行: in.telnetd:10.242.17.*
打开telnet-server 服务,防止ssh升级失败
修改配置文件/etc/xinetd.d/telnet中disable字段改为no。
启动服务
# service xinetd restart
二、升级Openssl1.0.1p
1、下载openssl-1.0.1p.tar.gz
http://pan.baidu.com/s/1o7r5J9C #百度云分享
http://www.openssl.org/source/old/1.0.1/openssl-1.0.1p.tar.gz #官网下载
2、删除旧版本openssl
rpm -e `rpm -qa | grep openssl` --allmatches --nodeps
3、安装openssl,
一定记得加上--shared选项, 否则openssh编译的时候会找不到新安装的openssl的library, 会报错: openssl的 header和library版本不匹配
#tar zxvf openssl-1.0.1p.tar.gz
#cd openssl-1.0.1p# ./config --prefix=/usr --shared
# make
# make test
# make install
#wget #如执行wget报如下错误,找到/usr/lib64/下面的libssl.so.1.0.0包,做软连接解决
wget: error while loading shared libraries: libssl.so.6: cannot open shared object file: No such file or directory
#ll /usr/lib64/libssl*
-rwxr-xr-x 1 root root 223032 Jan 14 2012 /usr/lib64/libssl3.so
-rw-r--r-- 1 root root 748198 Dec 28 17:24 /usr/lib64/libssl.a
-rwxr-xr-x 1 root root 49024 Dec 12 2007 /usr/lib64/libssldap60.so
lrwxrwxrwx 1 root root 15 Dec 28 17:24 /usr/lib64/libssl.so -> libssl.so.1.0.0
-r-xr-xr-x 1 root root 473762 Dec 28 17:24 /usr/lib64/libssl.so.1.0.0
#ln -sf /usr/lib64/libcrypto.so.1.0.0 /usr/lib64/libcrypto.so.6
#ln -sf /usr/lib64/libssl.so.1.0.0 /usr/lib64/libssl.so.6
4、下载openssh7.1
http://pan.baidu.com/s/1mgVVjIg #百度云分享
http://mirror.internode.on.net/pub/OpenBSD/OpenSSH/portable/openssh-7.1p1.tar.gz
查看openssl版本
# openssl version -a
OpenSSL 1.0.1p 9 Jul 2015
built on: Mon Dec 28 17:20:32 2015
platform: linux-x86_64
options: bn(64,64) rc4(8x,int) des(idx,cisc,16,int) idea(int) blowfish(idx)
compiler: gcc -I. -I.. -I../include -fPIC -DOPENSSL_PIC -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 -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM
OPENSSLDIR: "/usr/ssl"
5、备份ssh :
# mv /etc/ssh /etc/ssh.bak
编译安装新版本openssh
# tar zxf openssh-7.1p1.tar.gz && cd openssh-7.1p1
# ./configure --prefix=/usr --sysconfdir=/etc/ssh --with-pam --with-zlib --with-md5-passwords
# make
先卸载完旧版本的openssh,再make install
# rpm -qa | grep openssh
rpm -e openssh-server-6.1p1-5.el5.1
#make install
进入ssh安装解压目录
# cp ./contrib/redhat/sshd.init /etc/init.d/sshd #chmod +x /etc/init.d/sshd #chkconfig --add sshd
最后,启动 SSH 服务使修改生效,检查命令:
#chkconfig --list sshd sshd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
openssh7.1p1,默认禁止root登录,如需root登录,修改/etc/ssh/sshd_config 文件
vim /etc/ssh/sshd_config #找到 #PermitRootLogin prohibit-password 改为 PermitRootLogin Yes
保存退出。
重启sshd,在重启前,再登录一个会话,防止重启失败
# nohup service sshd restart & #建议一定用nohup后台执行 Stopping sshd: [ OK ] Starting sshd: [ OK ]
重新登录主机,并检查openssh版本
如果是从一台Linux主机跳转过去的,会出现如下提示
# ssh 10.103.70.7
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that the RSA host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
27:85:57:34:ce:b0:e0:2d:6d:33:44:c8:15:ae:7f:bd.
Please contact your system administrator.
Add correct host key in /root/.ssh/known_hosts to get rid of this message.
Offending key in /root/.ssh/known_hosts:1
RSA host key for 10.103.70.7 has changed and you have requested strict checking.
Host key verification failed
进入到跳转的主机,删除.ssh/known_hosts内的信息,或是直接rm known_hosts文件即可。
检查openssh版本:
# ssh -V OpenSSH_7.1p1, OpenSSL 1.0.1p 9 Jul 2015
升级安装成功!
6、最后记得关闭telnet服务功能
修改配置文件/etc/xinetd.d/telnet中disable字段改为yes。
# vim /etc/xinetd.d/telnet中disables 改为yes
重启动服务
# service xinetd restart
原文链接:Centos/Redhat升级Openssh7.1p1记录,转载请注明来源!