centos 7.6上openssh 7.4p1升级到 openssh 9.9p1 完整步骤

前两天安全扫描,列出一堆SSH 7.4版本漏洞,要求升级到9.7以上。

看了一下,操作系统为 centos 7.6, openssh 为 7.4p1 。

网上OPENSSH 7.4升级到7.8的比较多,7.8是2018年出来的,9.7是 2024年03月11日出来的,能否直接升级到9.7呢,而且目前OPENSSH最新版本为9.9,能否直接升级到9.9呢?

答案是肯定的,centos 7.6上面的openssh 7.4可以直接升级到openssh 9.9,与操作系统版本没有强依赖性。

下面是具体步骤:

目录

1.安装telnet-server

2.下载OPENSSH 9.9P1介质

3.检查当前系统版本情况

4.下载 OPENSSL 1.1.1W

5.安装 openssl 1.1.1w

6.安装ssh 9.9p1

7.更换 ssh 9.9

8.验证SSH9.9

9.卸载telnet-server

10. 保持联系




1.安装telnet-server


   考虑到ssh升级失败,无法操作,因此,事先先安装telnet-server
   使用OS 的安装介质即可安装 telnet-server
    yum install telnet-server
    systemctl enable telnet-server
    systemctl start telnet-server

    验证root用户无法登录。

    tail -f /var/log/secure
    。。。
    Nov 21 17:37:26 dbs01 login: pam_securetty(remote:auth): access denied: tty 'pts/1' is not secure !
    Nov 21 17:37:34 dbs01 login: pam_succeed_if(remote:auth): requirement "uid >= 1000" not met by user "root"
    Nov 21 17:37:35 dbs01 login: FAILED LOGIN 1 FROM ::ffff:172.17.6.240 FOR root, Authentication failure
    。。。
    把 pts/1 加入 /etc/securetty 即可
    echo pts/1 >> /etc/securetty

    也可以把  /etc/securetty  更名也可以达到同样效果


2.下载OPENSSH 9.9P1介质


   https://mirrors.aliyun.com/pub/O ... penssh-9.9p1.tar.gz


3.检查当前系统版本情况


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


4.下载 OPENSSL 1.1.1W


    阅读 openssh 9.9p1的文档,提示 openssl 需要是 1.1.1以上版本,当前系统的OPENSSL 的版本为1.0.2,因此需要先升级 openssl 的版本。
    https://github.com/openssl/opens ... enssl-1.1.1w.tar.gz


5.安装 openssl 1.1.1w


   [root@dbs01 setup]# tar -xvf openssl-1.1.1w.tar.gz
   [root@dbs01 setup] cd openssl-1.1.1w
   [root@dbs01 openssl-1.1.1w]# ./config --prefix=/usr/local/openssl
   [root@dbs01 openssl-1.1.1w]# make && make install

   --备份原文件
   mv /usr/bin/openssl /usr/bin/openssl.bak
   ln -sf /usr/local/openssl/bin/openssl /usr/bin/openssl
   echo "/usr/local/openssl/lib" >> /etc/ld.so.conf


   --设置生效
   ldconfig -v

   --查看版本
   openssl version
   [root@dbs01 openssl-1.1.1w]# openssl version
   OpenSSL 1.1.1w  11 Sep 2023



6.安装ssh 9.9p1



   tar -xzvf openssh-9.9p1.tar.gz
   cd openssh-9.9p1

   ./configure --prefix=/usr/local/openssh --with-ssl-dir=/usr/local/openssl --sysconfdir=/etc/ssh  --with-zlib

   make -j 16 && make install

   有报错信息:
   ...
   @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0640 for '/etc/ssh/ssh_host_ed25519_key' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Unable to load host key "/etc/ssh/ssh_host_ed25519_key": bad permissions
Unable to load host key: /etc/ssh/ssh_host_ed25519_key
sshd: no hostkeys available -- exiting.
make: [check-config] Error 1 (ignored)
     。。。
    通过 修改权限解决
     chmod -R 600 /etc/ssh

     再去执行编译安装,不再报错。


7.更换 ssh 9.9


--备份文件
mv /usr/sbin/sshd /usr/sbin/sshd.bak
mv /usr/bin/ssh /usr/bin/ssh.bak
mv /usr/bin/ssh-keygen /usr/bin/sshk-keygen.bak

cp -rf /usr/local/openssh/sbin/sshd /usr/sbin/sshd
cp -rf /usr/local/openssh/bin/ssh /usr/bin/ssh
cp -rf /usr/local/openssh/bin/ssh-keygen /usr/bin/ssh-keygen

--修改参数
PermitRootLogin yes
PubkeyAuthentication yes
PasswordAuthentication yes

--去掉几个选项,通过注释掉配置文件中对应的选项即可
/etc/ssh/sshd_config line 79: Unsupported option GSSAPIAuthentication
/etc/ssh/sshd_config line 80: Unsupported option GSSAPICleanupCredentials
/etc/ssh/sshd_config line 96: Unsupported option UsePAM

--重启ssh
systemctl restart sshd

 


8.验证SSH9.9


ssh -V

[root@dbs01 openssh-9.9p1]# ssh -V
OpenSSH_9.9p1, OpenSSL 1.1.1w  11 Sep 2023
[root@dbs01 openssh-9.9p1]#


9.卸载telnet-server


  telnet 是明文传输,不安全,最后卸载掉
   systemctl disble telnet-server
   systemctl stop telnet-server
   yum remove telnet-server

10. 保持联系

----------------------------------------------------------------------
如果你对数据库技术感兴趣,我们还可以在微信群:水煮数据库 进行交流,主要交流日常运维中用到的数据库相关问题,包含但不限于:ORACLE,PG,MYSQL,SQLSERVER,OB,TIDB,达梦,TDSQL,OPENGAUSS,人大金仓,GBASE等等,

加我微信吧:zq24803366,备注:水煮数据库,        我拉你入群。
----------------------------------------------------------------------

<think>好的,用户想了解如何将OpenSSH升级9.9版本。首先,我需要回忆之前整理的引用内容。根据引用[1],CentOS 7.6升级OpenSSH 9.9需要切换阿里源、安装依赖、编译安装,还有配置root登录。引用[2]提到必须先在9.6版本的基础上安装编译环境,否则会失败。而引用[3]给出了具体的步骤,包括安装依赖、备份、编译安装、配置和验证。 用户可能使用CentOS 7.6,所以步骤要针对这个系统。首先,要确保他们备份了重要数据,避免升级失败导致的问题。然后,替换阿里源是必要的,因为默认源可能没有最新依赖包。安装依赖包的时候,需要包括开发工具和openssl-devel等,这些在引用[1]和[3]都有提到。 接下来,下载openssh 9.9的源码包,解压后进入目录。编译安装的步骤需要指定openssl的路径,这里要注意,如果用户没有正确安装openssl或者路径不对,会导致编译失败。引用[2]特别强调编译环境的问题,所以必须确保之前的依赖已经安装完成。 安装完成后,替换旧的ssh文件,这里可能需要停止sshd服务,并备份原有配置,如引用[3]中的步骤。然后检查版本,确认升级是否成功。最后,配置允许root登录,修改sshd_config文件,并重启服务。 用户可能还会关心如何回滚,或者升级失败怎么办,所以需要提醒备份和快照。此外,防火墙和SELinux的设置也可能影响ssh连接,需要检查这些部分。可能的问题还有依赖包缺失,导致编译错误,这时候要确保所有开发工具都安装好了。 总结下来,步骤大致是:准备环境,安装依赖,下载源码,编译安装,替换配置,验证版本,配置root登录。需要按照顺序一步步来,避免遗漏关键步骤。同时,引用中的注意事项,比如编译环境和openssl版本,必须严格遵守,否则容易失败。</think>### OpenSSH 9.9 升级步骤详解 #### 一、准备工作 1. **系统环境要求** - 操作系统:CentOS 7.6(建议先更新系统补丁) - 当前OpenSSH版本:7.4p1(通过`ssh -V`验证)[^3] - **必须安装编译工具链**(如未安装,会导致编译失败)[^2] 2. **备份关键数据** ```bash cp -r /etc/ssh /etc/ssh_backup # 备份SSH配置文件 systemctl stop sshd # 停止SSH服务 ``` 3. **切换阿里源加速依赖下载** ```bash mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo yum clean all && yum makecache ``` #### 二、安装依赖环境 ```bash yum groupinstall "Development Tools" -y yum install openssl-devel pam-devel zlib-devel wget -y ``` #### 三、编译安装OpenSSH 9.9 1. **下载源码包** ```bash wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.9p1.tar.gz tar -zxvf openssh-9.9p1.tar.gz && cd openssh-9.9p1 ``` 2. **配置编译参数** ```bash ./configure --prefix=/usr --sysconfdir=/etc/ssh --with-ssl-dir=/usr/local/openssl ``` 3. **编译与安装** ```bash make && make install ``` #### 四、配置系统服务 1. **替换旧版本文件** ```bash cp -p contrib/redhat/sshd.init /etc/init.d/sshd chmod +x /etc/init.d/sshd ``` 2. **启用Root登录(关键安全配置)** ```bash sed -i &#39;s/#PermitRootLogin prohibit-password/PermitRootLogin yes/&#39; /etc/ssh/sshd_config systemctl restart sshd ``` #### 五、验证升级结果 ```bash ssh -V # 应显示:OpenSSH_9.9p1, OpenSSL 1.1.1w ``` #### 六、附加注意事项 1. **Telnet服务卸载建议** ```bash yum remove telnet-server -y # 升级完成后建议禁用非加密协议 ``` 2. **失败回滚方案** - 恢复`/etc/ssh_backup`目录 - 使用`yum downgrade openssh`还原旧版本
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值