CentOS7 升级openssh至openssh8.1之方案

对于Linux系统,ssh服务可以说是最重要的服务之一,远程管理基本都是使用这个了。如果出现漏洞,就存在很大的风险,需要及时升级ssh版本来修复漏洞。本文就CentOS7升级openssh至openssh8.1(发文时openssh的最新版为8.1)作一探讨。

一、准备
服务器Dell R720xd,安装CentOS7.7,IP地址:172.23.100.99;客户端为学生机,安装CentOS7.7,IP地址:172.23.100.25
1.客户机上打开一个终端连接服务器(一直保持到openssh升级成功)
#ssh chxf@172.23.100.99并切换到root用户
2.获取openssh8.1
#cd /usr/local/src
#wget http://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-8.1p1.tar.gz
3.为避免openssh失败无法登录安装telnet(可省略,不会失败)
#yum install -y telnet-server xinetd
#systemctl start xinetd
#systemctl enable xinetd.service
#systemctl start telnet.socket
#systemctl enable telnet.socket
4.检查openssh并删除
#rpm -qa | grep openssh
openssh-server-7.4p1-21.el7.x86_64
openssh-7.4p1-21.el7.x86_64
openssh-clients-7.4p1-21.el7.x86_64
#rpm -e `rpm -qa |grep openssh` --nodeps或者
#rpm -e ${rpm -qa |grep openssh} –-nodeps
#rm -rf /etc/ssh
5.升级openssl至openssh8.1相匹配的版本。本服务器升级至openssl 1.1.1d,其中openssl安装在/usr/local/openssl中。
如何升级openssl?可参考https://blog.csdn.net/my1114/article/details/102685028
#openssl version
OpenSSL 1.1.1d 10 Sep 2019
二、安装openssh8.1
1.安装依赖包
#yum -y install gcc pam pam-devel zlib zlib-devel openssl-devel
2.编译安装
#cd /usr/local/src
#tar -zxvf openssh-8.1p1.tar.gz
#cd openssh-8.1p1
#./configure --prefix=/usr --sysconfdir=/etc/ssh --with-md5-passwords --with-zlib --with-ssl-dir=/usr/local/openssl –with-privsep-path=/var/lib/sshd
#make && make install
3.有可能要遇到如下错误:
在这里插入图片描述

不用慌,更改权限即可。请执行:
#chmod 600 /etc/ssh/ssh_host_*
4.请继续执行:
#cd /usr/local/src/openssh-8.1p1
#install -v -m755 ./contrib/ssh-copy-id /usr/bin
‘contrib/ssh-copy-id’ -> ‘/usr/bin/ssh-copy-id’
#install -v -m644 ./contrib/ssh-copy-id.1 /usr/share/man/man1
‘contrib/ssh-copy-id.1’ -> ‘/usr/share/man/man1/ssh-copy-id.1’
#install -v -m755 -d /usr/share/doc/openssh-8.1p1
install: creating directory ‘/usr/share/doc/openssh-8.1p1’
#install -v -m644 INSTALL LICENCE OVERVIEW README* /usr/share/doc/openssh-8.1p1
‘INSTALL’ -> ‘/usr/share/doc/openssh-8.1p1/INSTALL’
‘LICENCE’ -> ‘/usr/share/doc/openssh-8.1p1/LICENCE’
‘OVERVIEW’ -> ‘/usr/share/doc/openssh-8.1p1/OVERVIEW’
‘README’ -> ‘/usr/share/doc/openssh-8.1p1/README’
‘README.dns’ -> ‘/usr/share/doc/openssh-8.1p1/README.dns’
‘README.md’ -> ‘/usr/share/doc/openssh-8.1p1/README.md’
‘README.platform’ -> ‘/usr/share/doc/openssh-8.1p1/README.platform’
‘README.privsep’ -> ‘/usr/share/doc/openssh-8.1p1/README.privsep’
‘README.tun’ -> ‘/usr/share/doc/openssh-8.1p1/README.tun’
#echo ‘Protocol 2’>>/etc/ssh/sshd_config
#echo ‘PermitRootLogin no’>>/etc/ssh/sshd_config 禁止root远程登录
#echo ‘UsePAM yes’>>/etc/ssh/sshd_config
5.开启sshd服务
#cp -p /usr/local/src/openssh-8.1p1/contrib/redhat/sshd.init /etc/init.d/sshd
#chmod 755 /etc/init.d/sshd
#chkconfig --add sshd
#chkconfig sshd on
#chkconfig --list sshd
#systemctl start sshd
6.验证
在客户端学生机(IP:172.23.100.25)上另外开启一个终端,利用ssh登录服务器,即ssh chxf@172.23.100.99,输入3次密码,却失败了…纠结…问题出在哪儿?
应该是SELinux或者防火墙未通过。执行
#setenforce 0
#systemctl stop firewalld
再利用ssh登录,成功。再进一步验证,执行
#systemctl start firewalld
再利用ssh登录,成功。
说明问题就出在SELinux上。执行:
#vim /etc/selinux/config
找到 SELINUX=enforcing并更改为SELINUX=disabled。
重启服务器,利用ssh登录成功。
三、利用ssh -V检验
[chxf@dellcentos7 ~]$ ssh -V
OpenSSH_8.1p1, OpenSSL 1.1.1d 10 Sep 2019
结论:CentOS7 上将openssh成功升级至openssh8.1。服务器更安全了!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值