一、环境描述
1)操作系统:CentOS 6.4 64位
2)Openssl版本:1.0.1e-15.el6,由于升级到openssh_6.7p1,需要OpenSSL的版本在0.9.8f以上,所以这里就不用升级openssl了。直接升级openssh就行了。
3)Openssh升级前版本:openssh-5.3p1-94.el6;Openssh升级后版本:openssh_6.7p1(源码安装)
4)连接工具xshell 4。要预防超时断开连接。
二、升级sshd到OpenSSH-6.7并删除老版本ssh
1)升级前准备
下载openssh-6.7p1.tar.gz
http://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-6.7p1.tar.gz
备份ssh配置文件 :
# mv /etc/ssh /etc/ssh.bak
查看是否缺包
# rpm -qa | egrep "gcc|make|perl|pam|pam-devel|zlib|zlib-devel"
如果有配置yum了的话可以直接yum安装这些包,这样既可以检验是否装了,没装的直接装上。
yum -y install gcc* make perl pam pam-devel zlib zlib-devel
先卸载完旧版本的openssh
# rpm -e `rpm -qa | grep openssh`
在虚拟机上安装了个CentOS6.5,顺便升级一下系统自带的openssh,任何系统操作都有风险,正式环境请做好备份工作。
1、准备工作,相应的包
自己到官方下载,另外需要下载依赖包openssl以及zlib包。
openssh下载地址:http://www.openssh.com/portable.html#http
openssl下载地址:http://www.openssl.org/source/
zlib下载地址:http://zlib.net/zlib-1.2.8.tar.gz
2、卸载系统自带的openssh,卸载之前先停止sshd服务,再用rpm删除,同时清除系统/etc/ssh目录
[root@CentOS tmp]# service sshd stop
Stopping sshd: [ OK ]
[root@CentOS tmp]# rpm -qa openssh
openssh-5.3p1-94.el6.x86_64
[root@CentOS tmp]# rpm -e openssh-server
[root@CentOS tmp]# rpm -e openssh-clients
[root@CentOS tmp]# rpm -e openssh-askpass
[root@CentOS tmp]# rpm -e openssh
[root@CentOS tmp]# rm -rf /etc/ssh
3、安装zlib
[root@CentOS tmp]# tar -xvf zlib-1.2.8.tar.gz
[root@CentOS tmp]# cd zlib-1.2.8
[root@CentOS zlib-1.2.8]# ./configure --prefix=/usr/local/zlib && make && make install
4、安装openssl
[root@CentOS tmp]# tar -xvf openssl-1.0.1i.tar.gz
[root@CentOS tmp]# cd openssl-1.0.1i
[root@CentOS openssl-1.0.1i]# ./config --prefix=/usr/local/openssl && make && make install
5、安装openssh
[root@CentOS tmp]# tar -xvf openssh-6.6p1.tar.gz
[root@CentOS tmp]# cd openssh-6.6p1
[root@CentOS openssh-6.6p1]# ./configure --prefix=/usr/local/openssh --sysconfdir=/etc/ssh --with-ssl-dir=/usr/local/openssl --with-
zlib=/usr/local/zlib --with-md5-passwords --without-hardening && make && make install
6、修改配置文件
[root@CentOS openssh-6.6p1]# cp contrib/redhat/sshd.init /etc/init.d/sshd
[root@CentOS openssh-6.6p1]# chmod +x /etc/init.d/sshd
[root@CentOS openssh-6.6p1]# vi /etc/init.d/sshd
修改对应指令的安装目录
=============================
25行 SSHD=/usr/sbin/sshd 为 SSHD=/usr/local/openssh/sbin/sshd
41行 /usr/bin/ssh-keygen -A 为 /usr/local/openssh/bin/ssh-keygen -A
=============================
保存退出
7、加入到系统服务
[root@CentOS openssh-6.6p1]# chkconfig --add sshd
[root@CentOS openssh-6.6p1]# service sshd start