CentOS7升级openssh至8.0

 

参考资料:最全CentOS7升级OpenSSH方案

 

以下这些包自行网上下载,或者虚拟机装一个最小系统,使用yumdownload下载这些资源

先将这些包上传到服务器,以免卸载openssl之后无法上传。

注意:最小系统安装openssl时,还需要先安装perl。

步骤:

1:升级openssh依赖的基础包(五个),卸载openssl和zlib能不卸载就不卸载,我因此已经玩坏几台虚拟机了

openssl-1.1.1.tar.gz,pam-1.1.8-22.el7.x86_64.rpm,pam-devel-1.1.8-22.el7.x86_64.rpm

zlib-1.2.7-17.el7.x86_64.rpm , zlib-devel-1.2.7-17.el7.x86_64.rpm

2:安装telnet,防止升级openssh之后ssh登陆不上,那就使用telnet方式登陆吧

telnet-0.17-64.el7.x86_64.rpm , telnet-server-0.17-64.el7.x86_64.rpm

xinetd-2.3.15-13.el7.x86_64.rpm

3:最后安装openssh

openssh-8.0p1.tar.gz

 

采用rpm -U升级安装,免得rpm -e  --nodeps卸载包出现问题。

#rpm  -Uvh  pam-1.1.8-22.el7.x86_64.rpm

#rpm -Uvh  pam-devel-1.1.8-22.el7.x86_64.rpm

 

安装xinted

#rpm  -Uvh  xinetd-2.3.15-13.el7.x86_64.rpm

 

安装zlib

#rpm  -Uvh  zlib-1.2.7-18.el7.x86_64.rpm

#rpm  -Uvh  zlib-devel-1.2.7-18.el7.x86_64.rpm

 

安装telnet

#rpm  -Uvh   telnet-0.17-64.el7.x86_64.rpm

#rpm  -Uvh   telnet-server-0.17-64.el7.x86_64.rpm

开启xinetd

#systemctl   start  xinetd

查看状态

#systemctl   status  xinetd

#systemctl  enable  xinetd

 

启动telnet

# systemctl start telnet.socket

# systemctl status telnet.socket

# systemctl enable telnet.socket

默认情况下,telnet是不允许root登录的。

执行命令:

# echo "pts/0" >> /etc/securetty

# echo "pts/1" >> /etc/securetty

 

永久关闭selinux,需要重启服务器,正式环境不能重启服务器,可以临时关闭

#vi /etc/selinux/config

如下图将selinux设置为disable

CentOS7升级openssh至8.0_第1张图片

 

临时关闭:

# getenforce

Enforcing

# setenforce 0

# getenforce

Permissive

 

 

关闭防火墙

# systemctl stop  firewalld

编辑pam配置文件,以便telnet允许root登录。

# vi /etc/pam.d/login

如图注释这一行

CentOS7升级openssh至8.0_第2张图片

 

编辑配置文件:

#vi  /etc/pam.d/remote

如图注释这一行

auth       required     pam_securetty.so

CentOS7升级openssh至8.0_第3张图片

 

重启xinetd,telnet服务

#systemctl  restart  xinetd

#systemctl  restart  telnet.socket

然后从其他服务器利用telnet测试登录(当然另外一台服务器上已经安装了telnet)

#telnet  ip

输入账号密码,登录成功。

telnet可以登录,实际上是开了另外一条可以登录服务器的通道,以免ssh升级出错,造成无法登录服务器。

 

升级openssl

先确保你的服务器上已经有gcc,gcc-c++。这两个是编译工具。

#rpm  -qa  |grep  gcc

没有安装。

则执行安装,这里我已经下载了gcc,gcc-c++的包。

如果你的服务器联网,可以执行:

#yum  install  gcc  gcc-c++

如果没有联网,就提前下载rpm包,可以采取上面yumdownload方法从联网服务器上下载。

建议yum安装,否则你将要下载很多依赖包。

 

卸载旧的openssl包。

#rpm  -qa  |grep openssl

#for  i   in  $(rpm  -qa |grep  openssl);do  rpm  -e  $i --nodeps  ;done

#tar  -xvf  openssl-1.1.1.tar.gz

#cd  openssl-1.1.1

执行:

#./config  shared

执行安装

#make  &&  make   install

安装完毕。

执行命令:

#echo "/usr/local/ssl/lib" >> /etc/ld.so.conf

#ldconfig

 

配置ssl库

#mv /usr/bin/openssl /usr/bin/openssl.old

#mv /usr/include/openssl /usr/include/openssl.old

#ln -s /usr/local/bin/openssl /usr/bin/openssl

#ln -s /usr/local/include/openssl/ /usr/include/openssl

#ln -s /usr/local/lib64/libssl.so.1.1 /usr/lib64/libssl.so.1.1

#ln -s /usr/local/lib64/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1

#echo "/usr/local/ssl/lib" >> /etc/ld.so.conf

#ldconfig -v                    # 设置生效

 

查看openssl版本

#openssl version

 

升级openssh

解压openssh安装包

#tar  xvf   openssh-8.8p1.tar.gz

#cd  openssh-8.0p1

卸载原openssh

#rpm  -qa |grep  openssh

 

卸载

#for  i   in  $(rpm  -qa  |grep  openssh);do  rpm  -e  $i  --nodeps ;done

执行:

#./configure --prefix=/usr --sysconfdir=/etc/ssh --with-md5-passwords--with-pam --with-tcp-wrappers  --with-ssl-dir=/usr/local/ssl    --without-hardening

 

删除原ssh配置目录

#rm  -rf  /etc/ssh

安装

#make   &&   make  install

 

安装完成,执行配置

#cp  ./contrib/redhat/sshd.init    /etc/init.d/sshd

#chkconfig --add sshd

#chkconfig sshd on

#chkconfig --list|grep sshd

 

查看版本

#ssh  -V

执行命令:

#sed -i "32 aPermitRootLogin yes" /etc/ssh/sshd_config

 

修改配置文件端口(/etc/ssh/sshd_config),默认22端口号,是其他端口号就需要改咯,不然登陆不上咯。

最后重启sshd服务

#systemctl  restart sshd

升级完成。

从其他服务器ssh登录升级的服务器,登录成功!

 


 

你可能感兴趣的:(CentOS7升级openssh至8.0)