linux离线升级ssh,升级到openssh8.8版本

这篇具有很好参考价值的文章主要介绍了linux离线升级ssh,升级到openssh8.8版本。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

liunx版本RedHat 7.6 和 Centos7.6

服务器检查漏洞,需要升级服务器ssh版本,从openssh7.4升级到openssh8.8,平滑升级ssh方法。

升级问题

  • 实际生产服务器是RedHat 7.6,我在vm虚拟机中搭建了centos7.6测试环境,前期也用了一个RedHat 7.6不理想,实际直接下载的红帽是用不了的,需要注册服务器,要用也能用安装网上需要改一些东西很麻烦,我弃用了。

  • 升级过程,直接在服务器升级ssh是有风险的,我参考一些网上平滑升级方法在测和环境弄了几次才成功,过程很坎坷,记录一下这个升级过程。这个升级过程没有用telnet做升级失败备用处理、也没有卸载旧版本ssh,直接开启多个ssh远程连接,一次升级成功,重启ssh服务验证远程连接升级。

  1. 先测试环境执行升级 ,在生产执行前可以在自己的云服务器或是本地虚拟机上先执行一遍升级,centos7.6和红帽7.6差不多,测试环境建议用centos直接测试就行。
  2. telnet备用远程连接安装问题,我没有用到telnet 远程连接, 前期安装也是按照网上升级案例给测试服务器安装telnet远程连接服务,实际的生产环境不允许用运程telnet连接,只有ssh连接工具。(注:查询服务器远程连接ssh的地址命令 service sshd status,看一下自己的运程连接ip是自己的主机还是堡垒机地址。
  3. 升级卸载旧版本ssh问题 ,不需要卸载旧版本的安装,网上一些教程需要卸载目前系统旧版本ssh后在安装,这种方式只能用切换telne运程连接操控升级了。我保留了旧版本ssh安装,通过替换配置文件完成ssh版本替代,重启ssh连接服务更用新版本。
  4. 升级关闭防火墙, 不需要关闭防火墙和关闭SELinux;

升级过程

1、备升级依赖

openssh8.8版本升级前所需安装两个依赖  zlib-1.2.11.tar.gz,openssl-1.1.1j.tar.gz,同时检查目前系统ssh版

升级版本依赖。
linux升级ssh版本,ssh,linux,服务器

检查系统ssh版本,centos7.6和RedHat系统安装自带ssh版本就是7.4的版本。


[root@localhost ~]# ssh -V
OpenSSH_7.4p1, OpenSSL 1.0.2k-fips  26 Jan 2017

2、编译安装检查是否有gcc安装环境

测试环境是新安装的,生产环境查了几个都有gcc,安装前查询下是否缺少gcc编译环境,查询命令 rpm -qa gcc

[root@localhost ~]# rpm -qa  gcc
gcc-4.8.5-36.el7.x86_64

3、上传文件解压到指定目录

指定到解压目录,我新安装的包都统一解压到/usr/local/src/目录下。

     tar -zxvf openssl-1.1.1p.tar.gz -C  /usr/local/src/
     tar -zxvf openssh-8.8p1.tar.gz -C /usr/local/src/
     tar -zxvf zlib-1.2.11.tar.gz -C /usr/local/src/
[root@localhost data]# cd /usr/local/src/
[root@localhost src]# ll
total 40
drwxr-xr-x.  7 ly   ly    16384 May 12 10:47 openssh-8.8p1
drwxrwxr-x. 19 root root   4096 May 12 10:10 openssl-1.1.1p
drwxr-xr-x. 14  501 games  4096 May 12 10:05 zlib-1.2.11
[root@localhost src]# pwd
/usr/local/src

3、直接安装新版的zlib、ssl、openssl

升级安装过程有依赖顺序的,顺序是zlib库-> openssl -> openssh

3.1 源码安装安装zlib
     cd zlib-1.2.11
     ./configure --prefix=/usr/local/zlib
     make && make install
3.2 编译安装openssl

正常编译源码,指定安装位置到/usr/local/ssl,这个安装位置一定要记住,后面修改配置文件要用。

    cd openssl-1.1.1p/
     ./config --prefix=/usr/local/ssl -d shared
     make && make install

注:安装openssl的时候如果出现提示不用管,只要是 OpenSSL has been successfully 就行。往下执行ssl配置命令:

   echo '/usr/local/ssl/lib' >> /etc/ld.so.conf
   ldconfig -v
   /usr/local/ssl/bin/openssl version -a # 查询这个目录下openssl版本已是1.1.1p

注:升级过程中需要刷新lib库:ldconfig -v

3.3 编译安装openssh

执行执行命令,安装的时候指定前面新安装的zlib和ssl安装位置

   cd openssh-8.8p1/
   ./configure --prefix=/usr/local/openssh --with-zlib=/usr/local/zlib --with-ssl-dir=/usr/local/ssl
   make && make install

注:版本迁移新版本已经安装完成,接下来需要做配置文件备份和修改

4、备份原有文件,并将新的配置复制到指定目录

需要修改 sshd_config文件,同时将openssh7.4旧版本的文件备份,用新安装版本文件重新替代旧版本。

4.1 修改新安装opensh允许远程访问
修改sshd_config文件执行命令
    echo 'PermitRootLogin yes' >>/usr/local/openssh/etc/sshd_config        # 运行root用户远程登录
    echo 'PubkeyAuthentication yes' >>/usr/local/openssh/etc/sshd_config    # 密钥对的身份验证方式,允许密钥认证
    echo 'PasswordAuthentication yes'>>/usr/local/openssh/etc/sshd_config  # 允许远程登陆用密码来认证
4.2 配置文件备份和修改

备份openssh7.4旧版本文件,重新修改为新版ssh配置文件,实现ssh新版替换。

  mv /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
  cp /usr/local/openssh/etc/sshd_config /etc/ssh/sshd_config

  mv /usr/sbin/sshd /usr/sbin/sshd.bak
  cp /usr/local/openssh/sbin/sshd /usr/sbin/sshd

  mv /usr/bin/ssh /usr/bin/ssh.bak
  cp /usr/local/openssh/bin/ssh /usr/bin/ssh
4.2 重新配置信任关系

升级OpenSSH后,原有公钥失效,信任关系需要重新配置;

  mv /usr/bin/ssh-keygen /usr/bin/ssh-keygen.bak
  cp /usr/local/openssh/bin/ssh-keygen /usr/bin/ssh-keygen

  mv /etc/ssh/ssh_host_ecdsa_key.pub /etc/ssh/ssh_host_ecdsa_key.pub.bak
  cp /usr/local/openssh/etc/ssh_host_ecdsa_key.pub /etc/ssh/ssh_host_ecdsa_key.pub

注:到这里文件配置已经替换完成,可以执行ssh -V 查询替换完的版本,查询已经是替换为ssh8.8版本

5、修改systemd参数

修改systemd参数(去掉Type或改为Type=simple)

  vim /usr/lib/systemd/system/sshd.service
  [Unit]
  Description=OpenSSH server daemon
  Documentation=man:sshd(8) man:sshd_config(5)
  After=network.target sshd-keygen.service
  Wants=sshd-keygen.service

  [Service]
  #Type=notify
  Type=simple
  EnvironmentFile=/etc/sysconfig/sshd
  ExecStart=/usr/sbin/sshd -D $OPTIONS
  ExecReload=/bin/kill -HUP $MAINPID
  KillMode=process
  Restart=on-failure
  RestartSec=42s
  [Install]
  WantedBy=multi-user.target

6、重启sshd服务

重新sshd服务,让系统新版ssh8.8替换掉ssh7.4版本提供的服务

   systemctl daemon-reload
   systemctl restart sshd
   systemctl status sshd

注:在最后重新sshd服务成功后,重新建立ssh远程连接验证ssh升级

[root@localhost src]# ssh -V
OpenSSH_8.8p1, OpenSSL 1.1.1p  21 Jun 2022

参考资料

升级过程参照了这位博主的方法:[https://www.cnblogs.com/liuweinotes/p/15903521.html ] ,感谢这位博主提供的升级经验。文章来源地址https://www.toymoban.com/news/detail-621724.html

到了这里,关于linux离线升级ssh,升级到openssh8.8版本的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • centos7.9和redhat6.9 离线升级OpenSSH和openssl (2023年的版本)

    1.1升级操作 完成升级SSH 参考并感谢up主: 澎湃的福流 BV1s94y1Z7J3

    2024年02月11日
    浏览(50)
  • 【Linux 升级Openssh以及Openssl版本】

    服务器漏洞,需要升级openssh版本到9.0。 输入命令查看 openssl 版本 因为我这里已经升级过了,所以显示最新版 下载最新的openssl并解压(建议将压缩包下载到 /opt 目录下): 如果在执行 wget 后指令提示 command not found ,是因为目标机上没有安装wget指令,需进行wget指令安装;

    2023年04月17日
    浏览(38)
  • linux系统将OpenSSH升级到最高版本

    公司安全扫描到主机的OpenSSH安全漏洞,由于是虚拟机只能由自己修复,很多OpenSSH的漏洞厂商都没有提供补丁,只能通过禁用scp或者端口的方式临时解决,但是后面使用就不方便了,而且也不安全,所以直接将OpenSSH升级到现在的最高版本openssh-9.3p2,ssl升级到1.1.1。 升级OpenS

    2024年02月15日
    浏览(45)
  • 【OpenSSH】无需公网IP使用SSH远程连接服务器

    转发自CSDN远程穿透的文章:【vscode远程开发】使用SSH远程连接服务器 「内网穿透」 远程连接服务器工具有很多,比如XShell、putty等,可以通过ssh来远程连接服务器,但这用于写代码并不方便,可能需要现在本地写好代码后再将源代码传送到服务器运行、服务器上的图片也无

    2024年02月04日
    浏览(78)
  • Linux操作系统升级低版本的OpenSSH到9.3的高版本

    OpenSSH 9.3之前的版本存在各种各样的安全漏洞,为此,我们需要将OpenSSH升级到最新的9.3的版本。 执行:ssh -V,我们可以查看当前的openssh版本  为了避免升级过程中出现意外而导致服务器无法正常使用,建议操作前先对服务器进行快照备份!!! 1. 备份原有pam.d下的sshd文件

    2024年02月07日
    浏览(45)
  • Windows系统安装OpenSSH客户端,实现ssh远程连接云服务器

    一、打开设置 - 应用 - 添加可选功能,选择安装OpenSSH客户端 二、安装完之后,验证 ssh 命令 1、启动ssh服务之后,打开 cmd 窗口已支持连接 三、如果 ssh 命令仍然不生效,需要配置 ssh 环境变量 1、新建 SSH_HOME 环境变量,C:windowsSystem32OpenSSH 2、把新建的 SSH_HOME 变量加入

    2024年02月15日
    浏览(45)
  • 银河麒麟服务器操作系统V10 SP2升级openssh9.3

    根据安全扫描结果,发现原系统自带openssh存在高危漏洞。需要针对图中漏洞进行处理。   由于ssh服务涉及运维方面,对openssh更新前需要预留其他连接服务器方法(如:telnet、VNC)。防止在升级的过程中导致服务器连接不上。需要自行结合实际情况进行操作。 3.1.1环境依赖安

    2024年02月16日
    浏览(116)
  • Centos6.5 openssh 5.4离线 升级为 openssh 7.7,使用rpm包安装

    很多linux 没有gcc c++ 等编译环境,并且处于内网环境,无法通过yum 命令直接安装软件,又由于编译软件所需要的依赖较多,安装起来相当麻烦。所以使用一台可以联网的Linux 将源码打成rpm包,在去内网linux 安装,即可省去内网linux 安装编译环境所带来的的困扰 Linux Centos6.5 O

    2024年02月11日
    浏览(42)
  • Centos7.9离线升级最新OpenSSH9.2,一次过

    1.基础准备 官方网站下载最新版*.tar.gz安装包: 官方下载地址:http://ftp.openbsd.org/pub/OpenBSD/ OpenSSH /portable/ openssh-9. 2 p1.tar.gz (注意: 要下载p1版,此版为编译安装包 ) 官方下载地址:https://www.openssl.org/source/ openssl- 1.1.1t .tar.gz 官方下载地址: http://www. zlib .net/ zlib-1.2.1 3 .tar.g

    2024年02月10日
    浏览(47)
  • bclinux升级ssh openssh-9.5p1

    bclinux升级ssh_openssh-9.5 资源下载:https://download.csdn.net/download/qq_41210783/88750470

    2024年01月17日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包