文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

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

2023-09-16 07:17

关注

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

服务器检查漏洞,需要升级服务器ssh版本,从openssh7.4升级到openssh8.8,平滑升级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版

升级版本依赖。
在这里插入图片描述

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

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

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

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

[root@localhost ~]# rpm -qa  gccgcc-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]# lltotal 40drwxr-xr-x.  7 ly   ly    16384 May 12 10:47 openssh-8.8p1drwxrwxr-x. 19 root root   4096 May 12 10:10 openssl-1.1.1pdrwxr-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 -VOpenSSH_8.8p1, OpenSSL 1.1.1p  21 Jun 2022

参考资料

升级过程参照了这位博主的方法:[https://www.cnblogs.com/liuweinotes/p/15903521.html ] ,感谢这位博主提供的升级经验。

来源地址:https://blog.csdn.net/weixin_44589878/article/details/130699790

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-人工智能
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯