centos6系列升级openssh爬坑记录

Centos6系列升级openssh教程

零、虚机建议更新前做个快照,本文档基于centos6.9制作,请根据实际操作系统下载对应iso镜像操作

一、安装编译所需的工具包

创建本地yum源(内网环境不能连接外网,一个个的安装依赖包过于复杂,有外网环境直接yum install gcc pam-devel zlib-devel openssl-devel即可,然后直接到第二步)

1、创建本地yum目录


image.png

2、查看系统版本信息

# cat /etc/issue

image.png

3、挂载系统iso镜像

# mount /dev/cdrom /tmp/update/

image.png

# ls /tmp/update # 如下图所示 说明挂载成功

image.png

4配置yum

# cd /etc/yum.repos.d

# mkdir bak

# mv *.repo bak/

# cp ./CentOS-Media.repo .

# ls
image.png

# vi CentOS-Media.repo 改成如下图所示的配置

image.png

清除下yum缓存

image.png

查看yum仓库列表

image.png

到此,本地yum源已完成,通过yum升级openssh所需的依赖包即可

# yum install gcc pam-devel zlib-devel openssl-devel(手工安装需要的依赖包较多,建议使用yum方式安装)

二、安装telnet

# yum -y install telnet-server*

或者下载以下两个包手动安装

xinetd-2.3.14-40.el6.x86_64.rpm

telnet-server-0.17-48.el6.x86_64.rpm

image.png
image.png

启动Telnet服务

# vi /etc/xinetd.d/telnet

image.png

将其中disable字段的yes改为no以启用telnet服务

mv /etc/securetty /etc/securetty.bak    #允许root用户通过telnet登录

# service xinetd start                    #启动telnet服务

# chkconfig xinetd on                     #使telnet服务开机启动,避免升级过程中服务器意外重启后无法远程登录系统
image.png

发现无法连接的话,请关闭防火墙

# servcie iptables stop 

# chkconfig iptables off 
image.png

接下来将要更新的openssh安装包copy到服务器上

到此前提条件准备完毕

三、升级openssh

1.备份当前openssh

# mv /etc/ssh /etc/ssh.bak

# mv /etc/init.d/sshd /etc/init.d/sshd.abk

2.卸载当前openssh

image.png

# rpm -e –nodeps openssh-xxx(使用这条命令逐个卸载)

根据已安装的包名称来卸载即可

注意:rpm -e --nodeps openssh-server-5.3p1-122.el6.x86_64 会出现:

error reading information on service sshd: No such file or directory

error: %preun(openssh-server-5.3p1-122.el6.x86_64) scriptlet failed, exit status 1

解决方法:

# rpm -e --noscripts openssh-server-5.3p1-122.el6.x86_64

3.解压openssh_7.5p1源码并编译安装

# tar -zxvf openssh-7.5p1.tar.gz

# cd openssh-7.5p1

# ./configure --prefix=/usr --sysconfdir=/etc/ssh --with-md5-passwords --with-pam --with-zlib --with-openssl-includes=/usr --with-privsep-path=/var/lib/sshd

# make

此处执行编译时可能报error,请检查之前是否成功安装了pam-devel zlib-devel openssl-devel

解决完错误继续下一步:

# make install

四、openssh安装后环境配置

1.在openssh编译目录执行如下命令

# install -v -m755 contrib/ssh-copy-id /usr/bin

# install -v -m644 contrib/ssh-copy-id.1 /usr/share/man/man1

# install -v -m755 -d /usr/share/doc/openssh-7.5p1

# install -v -m644 INSTALL LICENCE OVERVIEW README* /usr/share/doc/openssh-7.5p1
  1. 验证是否升级成功

# ssh -V

image.png

3.启用OpenSSH服务

在openssh编译目录执行如下目录
# echo 'X11Forwarding yes' >> /etc/ssh/sshd_config
# echo "PermitRootLogin yes" >> /etc/ssh/sshd_config   #允许root用户通过ssh登录
# cp -p contrib/redhat/sshd.init /etc/init.d/sshd
# chmod +x /etc/init.d/sshd
# chkconfig  --add  sshd
# chkconfig  sshd  on
# chkconfig  --list  sshd
# service sshd restart

4.此刻记得关闭selinux,否则重启后无法正常连接ssh,

关闭方法:

临时关闭:# setenforce 0

永久关闭:# vim /etc/selinux/config

将SELINUX=enforcing改为SELINUX=disabled,保存后退出

4.重启:

# reboot

五、重启系统验证openssh没问题后关闭telnet服务

# mv /etc/securetty.bak /etc/securetty

# chkconfig xinetd off

# service xinetd stop

如需还原之前的ssh配置信息,可直接删除升级后的配置信息,恢复备份。

# rm -rf /etc/ssh

# mv /etc/ssh.bak /etc/ssh

参考资料:http://blog.51cto.com/hnr520/1923012

文章同时也会在我的博客 0ne0ne.com同步更新。

你可能感兴趣的:(centos6系列升级openssh爬坑记录)