升级openssh8.9

https://blog.csdn.net/qq_27858615/article/details/126039917【漏洞处理】OpenSSH离线升级

  1. telnet安装
  1. 为了防止OpenSSH安装过程中导致ssh连接失败,所以需要安装telnet作为备用连接方式

telnet下载地址

下载地址

 

搜索框中搜索xinetd | telnet | telnet-server 并找到CentOS 7.9 这个版本下载(本机目前版本7.6,也可用)

  1. 需要下载三个文件,并上传服务器
  2. 依次安装依赖包,顺序是xinetd > telnet > telnet-server

依次安装依赖包,顺序是xinetd > telnet > telnet-server

sudo rpm -ivh xinetd-2.3.15-14.el7.x86_64.rpm
sudo rpm -ivh telnet-0.17-65.el7_8.x86_64.rpm
sudo rpm -ivh telnet-server-0.17-65.el7_8.x86_64.rpm
1
2
3
检查是否安装成功
rpm -qa | grep telnet
rpm -qa | grep xinetd
1
2
修改telnet配置文件,没有则自己创建
sudo vim /etc/xinetd.d/telnet
# default: on
# description: The telnet server serves telnet sessions; it uses
# unencrypted username/password pairs for authentication.

#disable这个默认是yes,只有改成no才可以启动telnet
service telnet
{
flags=REUSE
socket_type=stream
wait=no
user=root
server=/usr/sbin/in.telnetd
log_on_failure += USERID
disable= no
————————————————
配置修改完成后重启xinetd服务
service xinetd restart
systemctl restart xinetd.service
systemctl start telnet.socket

#查看xinetd是否启动
ps -ef| grep xinetd

#查看telnet指令是否可用
telnet 127.0.0.1
Trying 127.0.0.1...
telnet: connect to address 127.0.0.1: Connection refused

  1. 查看 操作系统是否安装 gcc、gcc-c++;
  2. 使用gcc-v和g++ -v命令查看版本,若出现版本详情则说明离线安装成功

gcc已经有了

一、软件包准备

下载gcc安装包和对应的依赖

版本:4.8.5

gcc已经有了

https://centos.pkgs.org/7/centos-x86_64/gcc-4.8.5-44.el7.x86_64.rpm.html

zlib-devel及相关依赖

 

版本:1.2.7-20.el7_9

zlib-1.2.7-20.el7_9.x86_64.rpm

http://mirror.centos.org/centos/7/os/x86_64/Packages/zlib-1.2.7-18.el7.x86_64.rpm

zlib-devel-1.2.7-20.el7_9.x86_64.rpmhttp://mirror.centos.org/centos/7/updates/x86_64/Packages/zlib-devel-1.2.7-20.el7_9.x86_64.rpm

安装zlib-devel(按照顺序执行)

sudo rpm -Uvh zlib-1.2.7-20.el7_9.x86_64.rpm

sudo rpm -Uvh zlib-devel-1.2.7-20.el7_9.x86_64.rpm

编译升级OpenSSL

  1. 备份旧OpenSSL

openssl version

whereis openssl

sudo mv /usr/bin/openssl /usr/bin/openssl.bak

sudo mv /usr/include/openssl /usr/include/openssl.bak

下载需要升级的openssl版本,并上传到服务器

https://www.openssl.org/source/old/1.1.1/openssl-1.1.1q.tar.gz

#安装文件保存地址

cd /home/user/openssl/

tar -zxvf openssl-1.1.1q.tar.gz

cd openssl-1.1.1q

#如果不加preix的话,默认是安装到/usr/local

./config

配置成功

 

安装

make & make install

建立软连接

sudo ln -s /usr/local/bin/openssl /usr/bin/openssl

sudo ln -s /usr/local/include/openssl /usr/include/openssl

查看 lib,并添加路径,然后应用配置

sudo find / -name "libssl*"

#这里可能要用root账号执行命令

echo "/usr/local/lib64/" >> /etc/ld.so.conf

ldconfig

ldconfig命令的作用

ldconfig是一个动态链接库管理命令

为了让动态链接库为系统所共享,还需运行动态链接库的管理命令--ldconfig

 ldconfig  命令的用途,主要是在默认搜寻目录(/lib和/usr/lib)以及动态库配置文件/etc/ld.so.conf内所列的目录下,搜索出可共享的动态 链接库(格式如前介绍,lib.so),进而创建出动态装入程序(ld.so)所需的连接和缓存文件.缓存文件默认为  /etc/ld.so.cache,此文件保存已排好序的动态链接库名字列表.

确认新版本

openssl version -a

编译升级OpenSSH

备份旧OpenSSH

ssh -V

find / -name ssh

 

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

————————————————

卸载旧版openssh-server(可以省略)

注意:卸载旧版openssh-server会导致ssh连接失败,并且sftp也会失效,尽量在卸载前,将文件上传和解压做好

未做

rpm -qa|grep openssh-server

rpm -qa|grep openssh-clients

rpm -qa|grep openssh.x86_64

 

rpm -e --nodeps openssh-server

rpm -e --nodeps openssh-clients

rpm -e --nodeps openssh.x86_64

————————————————

下载需要升级的openssh版本,并上传到服务器

openssh-8.9p1.tar.gz

https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-8.9p1.tar.gz

官网下载

#解压下载的文件

tar -zxvf openssh-9.0p1.tar.gz

安装新版openssh

cd /home/user/openssh/openssh-8.9p1

./configure

make

make install

# 查看PATH

echo $PATH

# cp到PATH,全局使用

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

#查看新版本是否安装好

ssh -V

OpenSSH编译安装的时候报openSSL library not found

版本问题,删除老版本重新安装 openssl后解决了。

yum remove openssl-devel

重新下载

http://mirror.centos.org/centos/7/os/x86_64/Packages/openssl-devel-1.0.2k-19.el7.x86_64.rpm

启动sshd

更改root远程登录

 vim /etc/ssh/sshd_config

PermitRootLogin后面的删了,改成yes`即可。

 

cp /home/user/openssh/openssh-9.0p1/contrib/redhat/sshd.init /etc/init.d/sshd

#注意!!!需要先修改sshd配置开启ssh的root连接权限,不然的话可能telnet和ssh都连接不进去

/etc/init.d/sshd restart

————————————————

善后工作

禁用telnet远程连接

# 23端口禁用

sudo systemctl stop telnet.socket

# 修改disable = yes

sudo vim /etc/xinetd.d/telnet

service xinetd restart

开启sshd服务的自重启!!!!重要,否则reboot之后会连不上

sudo systemctl enable sshd

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值