CentOS 6.2平滑升级openssh至7.1

2015/11/2616:20:16 发表评论

 

前言:生产环境中,如果你的服务器中使用的openssh版本较低(6.2中默认是5.3版本),已经被公开的漏洞爆菊了,这时你第一想法,就是赶紧填补爆菊之痛——升级openssh!果子我的心被openssh平滑升级的各种龟问题深深的刺痛了,下定决心,记录下这蛋疼的一幕,后面的小兄弟排好队,保持队形,小心压到蛋。

1、环境准备

果子我采用的方式是源码包生成RPM包的方式,首先,你需要get到源码包,地址如下:(如果链接失效,请自行寻问百度大妈或谷歌大爷):

http://www.linuxfromscratch.org/blfs/view/svn/postlfs/openssh.html

使用ssh工具连接到你的服务器,下载好源码,准备好编译目录:

mkdir ~/rmpbuild/SOURCES -p
mkdir ~/rmpbuild/SPECS -p
#我不会告诉你 ~ 表示的是当前用户主目录的
cd /tmp
wget http://ftp.riken.jp/Linux/momonga/6/Everything/SOURCES/x11-ssh-askpass-1.2.4.1.tar.gz
cp x11-ssh-askpass-1.2.4.1.tar.gz ~/rmpbuild/SOURCES

接着依次执行如下命令:(此处可自由发挥,只要你搞到源码包即可)

cd /tmp
wget http://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-7.1p1.tar.gz
tar zxf openssh-7.1p1.tar.gz
cd openssh-7.1p1
cp  contrib/redhat/openssh.spec ~/rpmbuild/SPECS

#这里为了安全性,修改下版本文件version.h,同时也可以提升下逼格

2、开始一键制作

cd ~
rpmbuild -bb ~/rpmbuild/SPECS/openssh.spec

这时,你会惊喜的发现在目录:~/rpmbuild/RPMS下,已经生成了6个RPM包,如果未发生惊喜,请跳到文章最后一节:

openssh-7.1p1-1.x86_64.rpm
openssh-askpass-7.1p1-1.x86_64.rpm
openssh-askpass-gnome-7.1p1-1.x86_64.rpm
openssh-clients-7.1p1-1.x86_64.rpm
openssh-debuginfo-7.1p1-1.x86_64.rpm
openssh-server-7.1p1-1.x86_64.rpm

3、安装RPM包

拷贝以上生成的rpm包,上传到服务器中,先卸载原始的openssh包:

rpm -e `rpm -qa | grep openssh`

由于/etc/init.d/sshd服务已经在运行中,它加载到内存中了,即使你卸载了安装文件,你的ssh终端还不会断开,此时希望你不要脑残的关闭ssh连接工具,因为接下来你要打电话给你的机房管理员了。好了,复制以下命令到shell终端或者将以下代码段写成shell脚本执行:

for p in `ls  *.rpm`
do
    rpm -Uvh $p
done
#重启下ssh服务
service sshd restart

其实为了保险起见,哥在操作的时候启动了telnetd服务,以防不测,省点电话费。万一ssh连接不上,我还可以telnet上去。

4、Troubleshooting

在制作的时候你可能会发现有些依赖包没有,你可以使用yum工具自带的搜索功能,比如,当提示你libxml.h找不到时,你可以使用命令:

yum provides */libxml.h

找到对应的包名后,即可以使用以下命令进行安装:

yum install -y rpm-package-name

如果你的系统是最小化精简安装,那么恭喜你,继续折腾,果子我就不陪你玩了,反正我已经生成好安装好了,拿去安装啦,拜拜。

  • 微信扫码赞助
  • weinxin
  • 支付宝赞助
  • weinxin

发表评论

您必须才能发表评论!