亲测该过程适用于centos 7.4 、centos 7.5、centos 7.6、centos 7.8(别问我为啥适配那么多,公司服务器太多了)
公司做测评,结果被扫出来一堆openssh漏洞,前不久才升级至8.4版本,又要升级,心累......
上网查了一堆资料,基本都是在线升级的,自己又是Linux小白,几经波折,终于........不负吹两天机房空调冷风
升级前最好开启telnet服务,防止升级失败导致ssh远程连接不上。过程搜一下别人的吧,我没开这个服务,机房比较近,直接去机房处理的。
升级前最好先关闭ssh服务:systemctl stop sshd
(1)官网下载升级包
OpenSSL升级包下载: https://www.openssl.org/source/openssl-1.1.1g.tar.gz
OpenSSH升级包下载: https://openbsd.hk/pub/OpenBSD/OpenSSH/portable/openssh-8.6p1.tar.gz
(2)先升级Openssl
进入服务器后台
- mkdir ./sshupdate(创不创都行,我怕文件太多就创了一个),
- cd ./sshupadte,将升级包上传至该路径下
- 解压 tar -xzvf openssl-1.1.1g.tar.gz
- 执行 cd openssl-1.1.1g
- 执行./config --prefix=/usr/ --openssldir=/usr/ shared
- 执行make && make install
- #查看升级后的openssl版本: openssl version
(3)升级Openssh
升级前先移除旧版本的etc/ssh文件夹
- #安装OpenSSH(8.6p1)
- 执行tar -xzvf openssh-8.6p1.tar.gz
- 执行cd openssh-8.6p1
- 执行./configure --with-zlib --with-ssl-dir --with-pam --bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc/ssh
- 执行make && make install
- 执行cp contrib/redhat/sshd.init /etc/init.d/sshd
- #查看升级后的ssh版本
- ssh -V
(4)安装完成后修改配置文件
- vim /etc/ssh/sshd_config
- 将#PermitRootLogin prohibit-password参数改成 PermitRootLogin yes 并取消注释,开启root权限登录
(5)另开一个ssh窗口,验证是否能ssh登录
出现拒绝密码的情况:
(1)重新检查一遍/ets/ssh/sshd_config文件中的PermitRootLogin 是否为yes
再测试
(2)输入sentenforce 0,再测试,如果测试这个能通过的话进入/etc/selinux/
SELINUX=enforcing改为SELINUX=disabled/
不行的话当我没说(我只是个小白)
升级中遇到的问题:
Make &&makeinstall
/etc/ssh/ssh_config already exists, install will not overwrite
/etc/ssh/sshd_config already exists, install will not overwrite
/etc/ssh/moduli already exists, install will not overwrite
/usr/sbin/sshd -t -f /etc/ssh/sshd_config
/etc/ssh/sshd_config line 79: Unsupported option GSSAPIAuthentication
/etc/ssh/sshd_config line 80: Unsupported option GSSAPICleanupCredentials
就是升级前没有卸载之前安装的openssh包,可以采取删除/etc/ssh文件,或者是移除/etc/ssh文件
最后分享一篇关于openssh超详细的博客:OPENSSH 详解 - 入戏的小白 - 博客园