Linux centos升级openssh到最新版本openssh8.6p1

今年4月份openssh发布了8.6版本

客户的机子上装的centos6,自带的openssh版本也比较低5.3p1,一扫描都是各种漏洞问题

所以准备升级到新的8.6版本

1、由于升级过程ssh会连接不上,需要先开启telnet服务,一定不要忘记!!!!

     命令:chkconfig telnet on

    开启完试一下能否连上:

    

     具体可参考楼主另一边文章:在linux中开启和关闭telnet服务_hjh872505574的专栏-CSDN博客_centos7关闭telnet服务

2、备份ssh文件,如果升级出问题还可以回滚

#楼主是昨天升级的,所以日期备注的是20210526

[root@bogon .ssh]#cp -r  /etc/ssh   /etc/ssh20210526
[root@bogon .ssh]#cp -r  /etc/pam.d /etc/pam.d20210526
[root@bogon .ssh]#cp -r /etc/init.d/sshd /etc/init.d/sshd20210526
[root@bogon .ssh]#cp  /usr/bin/ssh /usr/bin/ssh20210526

3、下载新版的openssh

[root@bogon .ssh]#cd /usr/local/src

[root@bogon .ssh]#wget https://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-8.6p1.tar.gz

4、升级openssh

#查看openssh版本信息以及相关软件
[root@bogon .ssh]# rpm -qa |grep openssh
openssh-clients-5.3p1-123.el6_9.x86_64
openssh-askpass-5.3p1-123.el6_9.x86_64
openssh-5.3p1-123.el6_9.x86_64
openssh-server-5.3p1-123.el6_9.x86_64
#卸载旧版本
[root@bogon .ssh]# rpm -e --nodeps openssh-clients-5.3p1-123.el6_9.x86_64
[root@bogon .ssh]# rpm -e --nodeps openssh-askpass-5.3p1-123.el6_9.x86_64
[root@bogon .ssh]# rpm -e --nodeps openssh-5.3p1-123.el6_9.x86_64
[root@bogon .ssh]# rpm -e --nodeps openssh-server-5.3p1-123.el6_9.x86_64

#创建openssh安装目录

[root@bogon .ssh]#mkdir /usr/local/openssh

#解压openssh

[root@bogon .ssh]#tar -zxvf openssh-8.6p1.tar.gz

#编译和安装

[root@bogon .ssh]#./configure --prefix=/usr/local/openssh/ --sysconfdir=/etc/ssh --with-md5-passwords --with-pam --with-zlib --with-openssl-includes=/usr --with-privsep-path=/var/lib/sshd

[root@bogon .ssh]#make

[root@bogon .ssh]#make install

20211213补充,换了一台服务器,执行上面的configure命令的时候一直报错

​​​​​​​后面改成了:./configure --prefix=/usr/local/openssh --with-zlib=/usr/local/zlib --with-ssl-dir=/usr/local/openssl     就可以执行成功了 

 

#等上面结束以后

[root@bogon .ssh]#cp -p contrib/redhat/sshd.init /etc/init.d/sshd

[root@bogon .ssh]#chmod +x /etc/init.d/sshd

[root@bogon .ssh]#chkconfig --add sshd

[root@bogon .ssh]#cp sshd_config /etc/ssh/sshd_config

[root@bogon .ssh]#cp /usr/local/openssh/sbin/sshd /usr/sbin/sshd

[root@bogon .ssh]#cp ssh-keygen /usr/bin/

[root@bogon .ssh]#vim /etc/init.d/sshd

#修改以下几行代码,改为openssh的安装目录

SSHD=/usr/sbin/sshd 改为 SSHD=/usr/local/openssh/sbin/sshd
/usr/sbin/ssh-keygen -A 改为 /usr/local/openssh/bin/ssh-keygen -A

$SSHD $OPTIONS && success || failure    这一行的上面加上:OPTIONS="-f /etc/ssh/sshd_config"

[root@bogon .ssh]#vim /etc/ssh/sshd_config

#在底部加上以下两行:

PasswordAuthentication yes
PermitRootLogin yes

#执行以下两个命令:提示是否覆盖按“y”,后面直接回车就好

[root@bogon .ssh]#ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key

[root@bogon .ssh]#ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key

#修改权限

[root@bogon .ssh]#chmod 600 /etc/ssh/ssh_host_ecdsa_key

[root@bogon .ssh]#chmod 600 /etc/ssh/ssh_host_rsa_key

#启动sshd

[root@bogon .ssh]#tservice sshd start

#查看ssh版本,证明版本升级成功

5、遇到的问题

5.1、由于host key已经变了,之前其他服务器已经连接过本级的就会没有连接

提示:WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!

具体信息如下:

ssh会把你每个你访问过的服务器的公钥(public key)都记录在/root/.ssh/known_hosts,当下次访问相同服务器时,OpenSSH会核对公钥。如果公钥不同,OpenSSH会发出警告,避免你受到DNS Hijack之类的攻击

直接编辑/root/.ssh/known_hosts,将需要连接的那个IP相关rsa信息删除即可,再次连接成功的话,它会将内容继续写入到known_hosts中

备注:是删除当前客户端的IP相关信息,不是需要远程的那一台(如上面的27服务器)

5.2、本地SecureCRT连接升级后的服务器会弹出一个窗口

解决方法:把password这个选项放到第一行就没问题了

6、升级完记得关闭telnet

[root@bogon .ssh]#chkconfig telnet off

7、升级的过程楼主参考了该博主的博客,链接:Centos7 OpenSSH6.6p1升级到OpenSSH8.6p1【图文】_hzy_709862479_51CTO博客

目前升级完暂时都正常可用,如果大家升级过程中有遇到其他问题,欢迎探讨

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值