linux系统升级openssh
一.背景:
客户审查查出openssh版本漏洞,需要升级openssh
当前只能通过堡垒机的ssh协议远程服务器,服务器系统是Red Hat Enterprise Linux Server7.8
系统openssh版本8.5p1,升级到了9.1p1,很顺利
但是继续审查,9.1p1也不行,干脆升级到当前最新版本9.5p1,但是当编译openssh9.5p1时,提示openssl版本太低,需要升级openssl,当时openssl版本是1.0.2k-fips,查了openssh和openssl的版本关联,打算升级openssl到1.1.1w版本
结果就是服务器连不上了
所以openssl大版本升级时,让相关信息科把系统做个快照,开通telnet的23端口,万一ssh无法远程,可以通过telnet协议远程,并且防火墙全程关闭,等到所有升级完,并且重启也没问题后,再把防火墙打开
二.关闭防火墙
// 关闭防火墙服务 systemctl stop firewalld // 关闭防火墙开机自启 systemctl disable firewalld
三.关闭selinux服务
// 关闭selinux服务
setenforce 0
// 检查是否关闭
getenforce
上面只是临时关闭了,重启后不生效。下面改配置文件,使永久生效。
vi /etc/selinux/config 修改: SELINUX=disabled 保存退出。
四.安装telnet远程
参考,https://www.cnblogs.com/wellwellwell/p/17891212.html,如果自信,可以不用这个步骤
五.下载安装包并存放在opt路径下
openssl下载地址,https://ftp.openssl.org/source/
openssh下载地址,http://ftp.openbsd.org/pub/OpenBSD/OpenSSH
六.安装相关依赖
yum install -y wget gcc libselinux-devel openssl-devel make perl zlib zlib-devel pam pam-devel
七.进入opt路径,并解压两个安装包
cd /opt tar -xvf openssl-1.1.1w.tar.gz tar -xvf openssh-9.5p1.tar.gz
八.进入openssl路径,编译并安装
cd /opt/openssl-1.1.1w ./config --prefix=/usr -d shared make && make install
#将ssl的lib库注册到系统的lib库 echo '/usr/local/ssl/lib' >> /etc/ld.so.conf ldconfig -v
验证
[root@vm206 openssl-1.1.1w]# whereis openssl openssl: /usr/bin/openssl /usr/lib64/openssl /usr/include/openssl /usr/share/man/man1/openssl.1ssl.gz /usr/share/man/man1/openssl.1 [root@vm206 openssl-1.1.1w]# openssl version OpenSSL 1.1.1w 11 Sep 2023
九.openssh安装
1.备份
mv /etc/ssh /etc/ssh.bak mv /usr/bin/ssh /usr/bin/ssh.bak mv /usr/sbin/sshd /usr/sbin/sshd.bak mv /etc/pam.d/sshd /etc/pam.d/sshd.old
2.进入openssh安装路径内,编译并安装
cd /opt/openssh-9.5p1 ./configure --prefix=/usr --sysconfdir=/etc/ssh --with-pam --with-ssl-dir=/usr/local/lib64/ make && make install
3.修改配置文件
echo 'PermitRootLogin yes' >>/etc/ssh/sshd_config
echo 'PubkeyAuthentication yes' >>/etc/ssh/sshd_config
echo 'PasswordAuthentication yes' >>/etc/ssh/sshd_config
4.文件替换
mv /etc/pam.d/sshd.old /etc/pam.d/sshd
5.恢复ssh pam认证
cp /opt/openssh-9.5p1/contrib/redhat/sshd.init /etc/init.d/sshd
// 移除sshd服务
systemctl stop sshd.service
mv /lib/systemd/system/sshd.service /lib/systemd/system/sshd.service.bak
systemctl daemon-reload
// 添加sshd自启动文件
cp /opt/openssh-9.5p1/contrib/redhat/sshd.init /etc/init.d/sshd
systemctl daemon-reload
/etc/init.d/sshd restart
systemctl daemon-reload
// 添加sshd自启动配置
chkconfig --add sshd
chkconfig --list sshd
6.检查
ssh -V
7.其他问题
参考,https://blog.csdn.net/qq_29431123/article/details/130846987
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具