Centos6系列升级openssh教程
零、虚机建议更新前做个快照,本文档基于centos6.9制作,请根据实际操作系统下载对应iso镜像操作
一、安装编译所需的工具包
创建本地yum源(内网环境不能连接外网,一个个的安装依赖包过于复杂,有外网环境直接yum install gcc pam-devel zlib-devel openssl-devel
即可,然后直接到第二步)
1、创建本地yum目录
2、查看系统版本信息
# cat /etc/issue
3、挂载系统iso镜像
# mount /dev/cdrom /tmp/update/
# ls /tmp/update # 如下图所示 说明挂载成功
4配置yum
# cd /etc/yum.repos.d
# mkdir bak
# mv *.repo bak/
# cp ./CentOS-Media.repo .
# ls
# vi CentOS-Media.repo 改成如下图所示的配置
清除下yum缓存
查看yum仓库列表
到此,本地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
启动Telnet服务
# vi /etc/xinetd.d/telnet
将其中disable字段的yes改为no以启用telnet服务
mv /etc/securetty /etc/securetty.bak #允许root用户通过telnet登录
# service xinetd start #启动telnet服务
# chkconfig xinetd on #使telnet服务开机启动,避免升级过程中服务器意外重启后无法远程登录系统
发现无法连接的话,请关闭防火墙
# servcie iptables stop
# chkconfig iptables off
接下来将要更新的openssh安装包copy到服务器上
到此前提条件准备完毕
三、升级openssh
1.备份当前openssh
# mv /etc/ssh /etc/ssh.bak
# mv /etc/init.d/sshd /etc/init.d/sshd.abk
2.卸载当前openssh
# 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
- 验证是否升级成功
# ssh -V
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同步更新。