【ssh】CentOS升级OpenSSH到最新版本

本文详细介绍如何在Linux系统中使用telnet作为临时替代方案来安全地升级OpenSSH服务。包括安装和配置telnet服务、备份及卸载现有OpenSSH、编译安装最新OpenSSH版本以及清理telnet等步骤。

一、安装telnet服务

升级安装openssh需要停止服务,适用telnet暂时代替远程连接,安装完成后再卸载

1.安装telnet

yum -y install telnet-server* telnet

2.配置telnet

# vi /etc/xinetd.d/telnet 
#将其中disable字段的yes改为no以启用telnet服务 
# mv /etc/securetty /etc/securetty.old    #允许root用户通过telnet登录

3.启动telnet

# service xinetd start                    #启动telnet服务 
# chkconfig xinetd on                    #使telnet服务开机启动,避免升级过程中服务器意外重启后无法远程登录系统

二、升级openssh

1.安装准备

yum install gcc pam-devel openssl-devel gcc-c++ make -y

2.备份当前openssh

mv /etc/ssh /etc/ssh.old 
mv /etc/init.d/sshd /etc/init.d/sshd.old

3.卸载当前openssh

# rpm -qa | grep openssh 
openssh-clients-5.3p1-104.el6.x86_64 
openssh-server-5.3p1-104.el6.x86_64 
openssh-5.3p1-104.el6.x86_64 
openssh-askpass-5.3p1-104.el6.x86_64 
# rpm -e --nodeps openssh-5.3p1-104.el6.x86_64 
# rpm -e --nodeps openssh-server-5.3p1-104.el6.x86_64 
# rpm -e --nodeps openssh-clients-5.3p1-104.el6.x86_64 
# rpm -e --nodeps openssh-askpass-5.3p1-104.el6.x86_64 
# rpm -qa | grep openssh 

注意:卸载过程中如果出现以下错误

# rpm -e --nodeps openssh-server-5.3p1-104.el6.x86_64  
error reading information on service sshd: No such file or directory 
error: %preun(openssh-server-5.3p1-104.el6.x86_64) scriptlet failed, exit status 1 

解决办法:

#rpm -e --noscripts openssh-server-5.3p1-104.el6.x86_64

4.openssh安装前环境配置

# install -v -m700 -d /var/lib/sshd 
# chown -v root:sys /var/lib/sshd 

5.解压openssh_7.7p1源码并编译安装

get https://openbsd.hk/pub/OpenBSD/OpenSSH/portable/openssh-7.7p1.tar.gz
tar -zxf openssh-7.7p1.tar.gz
cd openssh-7.7p1
./configure --prefix=/usr --sysconfdir=/etc/ssh --with-md5-passwords --with-pam --with-ssl --with-zlib --with-openssl-includes=/usr --with-privsep-path=/var/lib/sshd mandir=/usr/share/man/
 make && make install

6.启用OpenSSH服务

# 在openssh编译目录执行如下目录 
# echo 'X11Forwarding yes' >> /etc/ssh/sshd_config 
# echo "PermitRootLogin yes" >> /etc/ssh/sshd_config  #允许root用户通过ssh登录 
# cp -p contrib/RedHat/sshd.init /etc/init.d/sshd 
# chmod +x /etc/init.d/sshd 
# chkconfig  --add  sshd 
# chkconfig  sshd  on 
# chkconfig  --list  sshd 
# service sshd restart

三、清理telnet

### 准备工作 对于 CentOS 系统而言,离线升级 OpenSSH 至最新稳定版本涉及多个步骤。考虑到不同版本的 CentOS 使用不同的初始化系统来管理服务,了解当前使用的初始化系统有助于更好地理解如何操作。例如,在较新版本的 CentOS 中(如 CentOS 7 及以上),通常采用 `systemd` 来管理系统和服务[^3]。 ### 下载所需文件 由于目标是在无网络连接的情况下执行此任务,因此需要提前在一个有互联网访问权限的工作站上准备好所有必需的 RPM 文件及其依赖项。可以从官方仓库或其他可信资源获取这些文件,并将其传输到目标机器上。建议使用相同架构和相似内核版本的操作系统环境来进行下载,以减少兼容性问题的发生概率。 ### 安装前准备 确保拥有管理员权限以便于后续命令顺利运行。同时确认已停止现有的 SSH 服务以防冲突: ```bash sudo systemctl stop sshd.service ``` ### 解决依赖关系 在安装之前解决所有的依赖问题是至关重要的一步。可以通过创建本地 yum 源的方式处理依赖关系,即把下载好的 rpm 包放置在同一目录下形成临时存储库,再利用该存储库解析并满足所需的任何额外软件包需求。具体做法如下所示: 1. 创建一个新的 YUM 配置文件 `/etc/yum.repos.d/local.repo`; 2. 编辑上述配置文件加入以下内容: ```ini [local] name=Local Repository baseurl=file:///path/to/your/rpms/ enabled=1 gpgcheck=0 ``` 其中 `/path/to/your/rpms/` 应替换为你实际存放 RPM 文件的位置路径; ### 执行安装过程 当一切就绪后就可以开始正式安装新的 OpenSSH 软件包了。这一步骤同样适用于其他相关组件如客户端工具等: ```bash yum install --enablerepo=local openssh-server.x86_64 -y ``` 这条指令会告诉 YUM 只从名为 "local" 的自定义源中查找可用更新而不考虑默认启用的在线源。 ### 后续设置 成功安装之后还需要做一些必要的调整才能让新版 OpenSSH 正常运作起来。比如重新加载或重启相应的守护进程使更改生效: ```bash sudo systemctl daemon-reload sudo systemctl start sshd.service sudo systemctl enable sshd.service ``` 最后验证一下是否确实启用了预期版本的服务端程序即可完成整个流程[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AI克斯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值