Linux系统:OpenSSH7.4p升级到9.0p(服务器漏洞)

清华大学开源软件镜像站下载地址:

https://mirrors.tuna.tsinghua.edu.cn/pub/OpenBSD/OpenSSH/portable/openssh-9.0p1.tar.gz

一、升级

0、安装Telnet

(1)为防止安装失败,无法用ssh做远程连接,因此先安装telnet

powershell 复制代码
yum -y install telnet*
systemctl enable telnet.socket
systemctl start telnet.socket
powershell 复制代码
注:安全文件关闭或者修改(否则root无法telnet登录)
firewall-cmd --zone=public --add-port=23/tcp --permanent
再重启防火墙
systemctl restart firewalld.service
看防火墙所有开放的端口
firewall-cmd --zone=public --list-ports

1、准备工作

查询SSH版本

powershell 复制代码
ssh -V

进入/usr/local/目录

powershell 复制代码
 cd /usr/local/
 mkdir openssh
 cd openssh/

2、备份原SSH

powershell 复制代码
mv /usr/sbin/sshd /usr/sbin/sshd.bak
mv /usr/bin/ssh /usr/bin/ssh.bak
mv /usr/bin/ssh-keygen /usr/bin/ssh-keygen.bak
mv /etc/ssh /etc/ssh.bak
``
3、 上传openssh-9.0p1.tar.gz到openssh目录下并解压

```powershell
 tar -zxvf openssh-9.0p1.tar.gz
cd /home/user/openssh/openssh-9.0p1/

4、编译校验

powershell 复制代码
./configure --prefix=/usr --sysconfdir=/etc/ssh --with-md5-passwords --with-pam --with-zlib --with-tcp-wrappers --with-ssl-dir=/usr/local/ssl --without-hardening`

执行完成如图

此处执行到最后经常会报错,如openssl-devel等各种rpm包没有安装,并且安装包之间都有相互依赖和冲突,依次安装即可,主要是检查rpm下列包是否安装

powershell 复制代码
yum install keyutils-libs rpm-build -y
yum install krb5-devel
yum install libcom_err-devel.i686 -y
yum -y install libselinux-devel.i686 
yum -y install pam-devel.x86_64 
yum -y install openssl-devel.x86_64
yum -y install pkgconfig.i686 
yum -y install vsftpd.x86_64
yum -y install zlib-devel.i686

5、编译安装

powershell 复制代码
make && make install

编译成功如图

6、复制到全局使用

powershell 复制代码
cp /usr/local/sbin/sshd /usr/sbin/
cp /usr/local/bin/ssh /usr/bin/
cp /usr/local/bin/ssh-keygen /usr/bin/
ln -s /usr/local/etc /etc/ssh

7、查看版本

8、修改配置信息并重启

powershell 复制代码
echo "PermitRootLogin yes" >> /etc/ssh/sshd_config
echo 'X11Forwarding yes' >> /etc/ssh/sshd_config
echo "PasswordAuthentication yes" >> /etc/ssh/sshd_config

9、复制启动文件

powershell 复制代码
cp /home/user/openssh/openssh-9.0p1/contrib/redhat/sshd.init /etc/init.d/sshd

10、服务自启动

powershell 复制代码
systemctl enable sshd
systemctl daemon-reload
service sshd restart

11、验证是否有效

不要关闭现在的会话框,如果有问题可能会连接不上服务器.新开一个会话框连接该账号密码看看能不能登录

二、问题

2.sshd服务重启报错

(1)报错

systemctl start sshd 会很快返回,但此时命令行一直等待状态,直到数分钟后出现提示: Job for sshd.service failed because a timeout was exceeded.

(2)问题分析

单元文件包含单元的指令和行为信息。在后台systemctl命令和单元文件一起工作。为了出色而正确的完成工作,系统管理员必须能够手工编辑单元文件。一般系统管理员手工创建的单元文件建议存放在/etc/systemd/system/目录下面。

sshd单元文件位于/usr/lib/systemd/system/sshd.service 。

sshd.service 服务启动方式为notify,但sshd 启动时不会发送消息

(3)解决方法

服务启动方式修改为simple(默认方式)后即可正常启动sshd服务,并能够正常进行远程连接

重新加载服务并启动

三、总结

SSH常识:

SSH是安全的加密协议,用于远程连接Linux服务器;

SSH的默认端口是22,安全协议版本是SSH2;

SSH服务器端主要包含2个服务功能SSH连接和SFTP服务器;

SSH客户端包含ssh连接命令和远程拷贝scp命令等。

openssh升级:

需要先开启trlnet 服务,预防升级失败连接不上服务器;

然后升级openssl地址,按照步骤设置路径地址;

最后升级完不要立马关闭会话框,要先验证,预防下次进来的时候进不来;
验证成功之后,需要关闭telnet服务,因为不安全

相关推荐
雾里0不看花几秒前
【App Service Linux】在Linux App Service中安装 tcpdump 并抓取网络包
linux·网络·tcpdump
沉迷学习 日益消瘦1 小时前
13-Ingress 生产实战
运维·kubernetes
Dawn-bit1 小时前
Linux日志处理三剑客之基础篇:(基础正则+扩展正则)
linux·运维·服务器·正则表达式·云计算·运维开发
暗影凋落1 小时前
docker-image 工具展示更详细镜像层内容
运维·docker·容器
深圳市爱派派智能科技有限公司1 小时前
“进迭时空 RISC-V 集群服务器 CSB1-N10SPK3:10 节点 K3,600 TOPS 绿色算力“
运维·服务器·risc-v·k3·进迭时空·集群服务器
☆凡尘清心☆1 小时前
Linux运维故障排查速查命令清单
linux·运维·服务器
QWEDDRFTG1 小时前
机房供电安全
服务器
极客先躯1 小时前
高级java每日一道面试题-2026年05月11日-实战篇[Docker]-如何容器化金融产品推荐系统?
java·运维·docker·容器·金融·高级面试·金融产品推荐系统
小泊客1 小时前
友善R5C刷OpenWrt后RTL8822CE无线网卡显示“禁用”或“未激活”的完整解决方案
linux·github·运维开发
nvd112 小时前
GCP L4 Passthrough 负载均衡器“假死超时”深度排查复盘
运维·php·负载均衡