Centos系统下openssh升级到10.0p2

​​​​​​

升级与操作有风险,请谨慎操作!!!本公众号的内容只在测试环境上验证,不对您的任何操作行为负责。

     还有学员不知道如何在服务器版系统上源码编译升级openssh,怎么办?信创课堂第12期开课,本文将在统Centos7.x服务器操作演示,其他版本类似。

     OpenSSH升级过程会断掉ssh连接,请谨慎操作!!!

     操作之前,请提前安装telnet,使用telnet连接到服务器,此处略!!

1、查看当前系统OpenSSH版本和OpenSSL版本,并将Zlib、openssl-1.1.1f、 openssh-10.0p2源码包上传到服务器。

现提供该测试版本,若需要最新版本,请到官方网站下载。链接: https://pan.baidu.com/s/1zYtmELch53ZWDe-vM3_RDw?pwd=bafk 提取码: bafk)

2、编译安装zlib工具,编译安装命令如下

[root@localhost ~]#  tar -zxvf zlib.tar.gz [root@localhost ~]# cd zlib-1.3.1/[root@localhost ~]# ./configure --prefix=/usr/local/zlib[root@localhost ~]#  make && make install 

安装完成后,没有报错,表明已经安装成功

3、编译安装Openssl查看系统当前版本和内核信息

[root@localhost ~]# tar -zxvf openssl-1.1.1f.tar.gz      [root@localhost ~]#  cd ../openssl-1.1.1f/[root@localhost ~]#  ./config --prefix=/usr/local/ssl -d shared[root@localhost ~]#  make && make install 

查看是否安装成功,没有报错表明安装成功

4、更新一下动态链接库,将ssl库写入/etc/ld.so.conf文件,执行ldconfig -v

[root@localhost ~]# echo '/usr/local/ssl/lib' >> /etc/ld.so.conf

5、编译安装Openssh10.0p2

[root@localhost ~]# tar -zxvf openssh-10.0p2.tar.gz[root@localhost ~]#cd ../openssh-10.0p1/[root@localhost ~]# ./configure --prefix=/usr/local/openssh --with-zlib=/usr/local/zlib --with-ssl-dir=/usr/local/ssl  --without-openssl-header-check[root@localhost ~]# make && make install 

参数说明:

--prefix=/usr/local/openssh ##prefix选项是配置安装的路径,如果不配置该选项,安装后可执行文件默认放在/usr/local/bin,库文件默认放在/usr/local/lib,配置文件默认放在/usr/local/etc,其它的资源文件放在/usr/local/share--with-zlib=/usr/local/zlib ## 使用zlib库--with-ssl-dir=/usr/local/ssl  ##使用ssl--without-openssl-header-check  ##不使用openssl头文件,若系统存在同版本openssl头文件,可以不用加这个参数,若编译的openssl版本和系统的openssl版本不一样,则需要加这个参数

没有报错,表示configure配置校验检查正常,就可以直接安装了

执行make && make install 安装,没有报错,表明安装成功

6、卸载原有的openssh包,加参数--nodeps表示强制卸载,查看是否已经卸载完毕

[root@localhost ~]#  rpm -e openssh openssh-server openssh-clients openssh-help  --nodeps

7、配置并重启ssh

[root@localhost ~]# cp /usr/local/openssh/bin/ssh* /usr/bin/  ##拷贝可执行文件[root@localhost ~]# cp  contrib/redhat/sshd.init /etc/init.d/sshd  ##拷贝自启动脚本[root@localhost ~]# cp /usr/local/openssh/sbin/sshd /usr/sbin/sshd  ##系统管理程序与bin目录一样[root@localhost ~]# systemctl  restart sshd [root@localhost ~]#  chkconfig --add sshd  ## 将该服务到chkconfig数据库,并添加到启动项中[root@localhost ~]# systemctl  restart sshd ##重启sshd服务[root@localhost ~]#   ssh -V ## 查看当前ssh版本

8、重启服务器,再次验证是否可以远程ssh登录服务器

注意:升级完openssh后,配置文件是/usr/local/openssh/etc/sshd_config,而不是/etc/ssh/sshd_config,若要修改sshd配置,需要对/usr/local/openssh/etc/sshd_config文件修改,重启服务,才可以生效。

要下载或安装 OpenSSH 10.0P2 的 RPM 包,可以按照以下方法操作: ### 下载 OpenSSH 10.0P2 RPM 包 可以通过访问公共的软件包存储库来查找和下载所需的 RPM 包。以下是几个可能的方法: #### 方法一:通过官方网站或其他可信资源 OpenSSH 并未直接提供特定版本的 RPM 包,通常需要从发行版的官方仓库或者第三方仓库中找到对应的 RPM 包。例如 Fedora 或 RHEL/CentOS 提供的相关仓库可能会有较新版本的 OpenSSH。 对于 OpenSSH 10.0P2 版本,建议访问以下链接寻找适合的 RPM 包: - **Fedora Project**: https://src.fedoraproject.org/rpms/openssh[^5] - **CentOS Vault**: http://vault.centos.org/ 如果无法在线找到预编译的 RPM 包,则可以选择从源码构建 RPM 包。 --- ### 构建自定义 RPM 包 当找不到现成的 RPM 包时,可以从源代码手动创建 RPM 包。以下是具体步骤: #### 步骤概述 1. 获取 OpenSSH 源代码。 2. 使用 `rpmbuild` 工具重新打包为 RPM 格式的二进制文件。 #### 具体实现 ##### 1. 准备开发环境 确保系统已经安装必要的工具链: ```bash sudo yum groupinstall "Development Tools" sudo yum install rpm-build redhat-rpm-config gcc make perl openssl-devel zlib-devel pam-devel ``` ##### 2. 下载 OpenSSH 源代码 前往 OpenSSH 官方网站下载指定版本的源代码压缩包: ```bash wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-10.0p2.tar.gz tar -xzvf openssh-10.0p2.tar.gz cd openssh-10.0p2 ``` ##### 3. 创建 SPEC 文件 SPEC 文件描述如何将源代码转换为 RPM 包。可以根据现有模板修改生成一个新的 SPEC 文件。假设已有基本框架如下所示: ```spec Name: openssh Version: 10.0p2 Release: 1%{?dist} Summary: The portable version of OpenSSH License: BSD URL: https://www.openssh.com/ Source0: %{name}-%{version}.tar.gz BuildRequires: gcc, make, perl, openssl-devel, zlib-devel, pam-devel %description The OpenSSH suite provides secure encrypted communications between two untrusted hosts over an insecure network. %prep %setup -q %build ./configure --prefix=/usr \ --sysconfdir=/etc/ssh \ --with-pam \ --with-md5-passwords make %install rm -rf $RPM_BUILD_ROOT make DESTDIR=$RPM_BUILD_ROOT install %files %defattr(-,root,root,-) /usr/bin/* /etc/ssh/* %changelog * Mon Oct 16 2023 Your Name <your.email@example.com> - 10.0p2-1 - Initial build for OpenSSH 10.0p2. ``` 保存此文件为 `openssh.spec`。 ##### 4. 执行 rpmbuild 命令 运行以下命令以生成 RPM 包: ```bash mkdir -p ~/rpmbuild/{BUILD,BUILDROOT,RPMS,SOURCES,SPECS,SRPMS} cp openssh-10.0p2.tar.gz ~/rpmbuild/SOURCES/ cp openssh.spec ~/rpmbuild/SPECS/ rpmbuild -ba ~/rpmbuild/SPECS/openssh.spec ``` 成功完成后,在 `~/rpmbuild/RPMS/x86_64/` 路径下即可找到生成的 RPM 包。 --- ### 安装 RPM 包 一旦获得 RPM 包,可以直接使用 `yum` 或 `rpm` 命令完成安装: ```bash sudo yum localinstall /path/to/openssh-10.0p2*.rpm # 或者 sudo rpm -Uvh /path/to/openssh-10.0p2*.rpm ``` 注意:在某些情况下,可能需要先解决依赖关系问题。 --- ### 验证安装 验证是否正确安装了目标版本: ```bash sshd -v ``` 预期输出应显示版本号为 `OpenSSH_10.0p2`[^6]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值