由于升级OpenSSH涉及到安全性问题,为保险起见,在升级前最好安装telnet服务作为备用方案,然后在升级成功后再停止telnet即可。
一、OpenSSH升级相关源码包下载地址
zlib http://www.zlib.net/zlib-1.2.11.tar.gz zlib其他版本下载地址 http://www.zlib.net/fossils/ openssl-fips http://www.openssl.org/source/openssl-fips-2.0.16.tar.gz OpenSSL http://www.openssl.org/source/openssl-1.0.2m.tar.gz OpenSSH https://fastly.cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-7.6p1.tar.gz
安装依赖包
yum -y install gcc pam-devel zlib-devel openssl-devel
注:官网说明openssh7.6p1依赖的openssl的版本为>1.0.1e 并且 < 1.1.0
二、编译相关源码包
yum install -y zlib(若系统已安装可不用执行此步骤),这里我是采用的编译安装zlib
1、安装zlib
解压
tar-xvf zlib-1.2.11.tar.gz cdzlib-1.2.11 ./configure make makeinstall
查看
ll/usr/local/lib
2、安装openssl-fips
此为FIPS140-2 support module for openssl, 具体说明参见http://www.openssl.org/docs/fips
[[email protected] openssl-fips-2.0.16]# tar zxpf openssl-fips-2.0.16.tar.gz # cd openssl-fips-2.0.16 # ./config # make && make install
生成路径在:
/usr/local/ssl/fips-2.0/
3、安装openssl
# tar -xf openssl-1.0.2m.tar.gz # cd openssl-1.0.2m [[email protected] openssl-1.0.2m]# ./config --prefix=/usr--openssldir=/usr/ shared zlib 需带上–shared参数 否则会出现头文件和库文件不匹配 #make
由于我使安装在原路径下,所以我将旧的配置文件挪了一下位置
mv /usr/bin/openssl /usr/bin/openssl.oldbak mv /usr/include/openssl /usr/include/openssl.oldbak [[email protected] openssl-1.1.0g]#make install
查看是否升级成功
# openssl version -a | openssl version
至此已全部完成OpenSSL的升级工作
4、安装openssh
wget https://fastly.cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-7.6p1.tar.gz [[email protected]~]# cd openssh-7.6p1 [[email protected]]# ./configure --prefix=/usr --sysconfdir=/etc/ssh 完成后执行make: [[email protected] openssh-7.6p1]# make
make完成后先不要make install,备份旧的ssh并易名
[[email protected]]# mv /etc/ssh/ /etc/sshbak
或用下面,推荐用上面备份
make完成后先不要make install,先卸载旧版的openssh
[[email protected] openssh-7.6p1]# rpm -e --nodeps `rpm -qa | grep openssh`
完成后执行make install:
[[email protected] openssh-7.6p1]# make install
查看下安装结果:
[[email protected] openssh-7.6p1]# ssh -V
至此编译全部安装完成
三、ssh相关配置
1、配置sshd服务:
复制启动文件到/etc/init.d/下并命名为sshd(原先存在旧启动脚本备份易名):
[[email protected] openssh-7.6p1]# cp contrib/redhat/sshd.init /etc/init.d/sshd
加入开机启动:
[[email protected] openssh-7.6p1]# chkconfig --add sshd
2、配置允许root使用ssh:
openssh7.6后默认root用户是不能用ssh远程登录的(但普通用户是可以ssh远程登录的),需要修改配置文件:
[[email protected] openssh-7.6p1]# vim /etc/ssh/sshd_config 找到#PermitRootLoginprohibit-password项,去掉注释并把prohibit-password改为yes PermitRootLogin yes 配置允许root用户远程登录
这一操作很重要!很重要!很重要!重要的事情说三遍,因为openssh安装好默认是不执行sshd_config文件的,所以即使在sshd_config中配置允许root用户远程登录,但是不加上这句命令,还是不会生效!
vim /etc/init.d/sshd 在 ‘$SSHD $OPTIONS &&success || failure’这一行上面加上一行‘OPTIONS="-f /etc/ssh /sshd_config"’
保存退出
重启ssh服务:
[[email protected] openssh-7.6p1]# service sshd restart
至此升级/安装完成。
AllowUsers tom