当前位置:首页 > 系统教程 > 正文

CentOS7 OpenSSH升级至10.0p2完整教程(附Telnet备份,安全无忧)

CentOS7 OpenSSH升级至10.0p2完整教程(附Telnet备份,安全无忧)

手把手教你安全升级SSH,避免远程连接中断

关键词: CentOS7 OpenSSH升级, OpenSSH 10.0p2安装, Telnet备份方案, SSH安全升级

CentOS7 OpenSSH升级至10.0p2完整教程(附Telnet备份,安全无忧) OpenSSH升级  OpenSSH 10.0p2安装 Telnet备份方案 SSH安全升级 第1张

本文详细介绍如何在CentOS7系统上将OpenSSH升级到10.0p2版本,并通过启用Telnet作为备份方案,确保升级过程中不会因SSH断开而失去连接。适合所有Linux运维人员及初学者参考。

1. 升级前的准备与环境检查

首先,登录CentOS7服务器,检查当前OpenSSH版本和系统信息:

    ssh -Vcat /etc/redhat-releaseuname -a  

确认当前SSH版本(通常为7.4p1),并记录。同时确保系统已安装基本的编译工具:

    yum install -y gcc make zlib-devel openssl-devel pam-devel rpm-build wget  

2. 部署Telnet备份方案

为了防止升级过程中SSH服务异常导致无法远程登录,我们需要先安装并启动Telnet服务作为备用通道。

    yum install -y telnet-server xinetdsystemctl enable xinetdsystemctl enable telnet.socketsystemctl start telnet.socketsystemctl start xinetd  

默认情况下,Telnet禁止root登录。如需允许root通过Telnet登录,执行以下操作:

    echo "pts/0" >> /etc/securettyecho "pts/1" >> /etc/securetty   # 根据需要添加多个  

并修改PAM配置(/etc/pam.d/login),注释掉或修改相应行。测试Telnet连接确保可用。

3. 升级OpenSSL(可选但强烈推荐)

OpenSSH 10.0p2需要较高版本的OpenSSL(如1.1.1以上)。CentOS7自带的OpenSSL版本为1.0.2k,不满足要求,因此我们需要升级OpenSSL。

    cd /usr/local/srcwget https://www.openssl.org/source/openssl-1.1.1t.tar.gztar -xzf openssl-1.1.1t.tar.gzcd openssl-1.1.1t./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl shared zlibmake && make install  

配置库路径:

    echo "/usr/local/openssl/lib" > /etc/ld.so.conf.d/openssl.confldconfig  

4. 下载并编译OpenSSH 10.0p2

从OpenSSH官网或镜像下载源码包:

    cd /usr/local/srcwget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-10.0p2.tar.gztar -xzf openssh-10.0p2.tar.gzcd openssh-10.0p2  

配置编译参数,指定OpenSSL路径:

    ./configure --prefix=/usr --sysconfdir=/etc/ssh --with-pam --with-ssl-dir=/usr/local/openssl --with-md5-passwords --with-privsep-path=/var/empty/sshd  

如果/var/empty/sshd不存在,先创建:mkdir -p /var/empty/sshd。然后编译安装:

    make && make install  

5. 配置新SSH并重启服务

安装完成后,备份原有配置文件:

    cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bakcp /etc/ssh/ssh_config /etc/ssh/ssh_config.bak  

复制新的配置文件(如果源码目录下有):

    cp contrib/redhat/sshd.init /etc/init.d/sshdchmod +x /etc/init.d/sshd  

根据需要修改sshd_config,例如允许root登录、启用密码认证等。然后重启sshd:

    systemctl restart sshdsystemctl enable sshd  

6. 验证升级并清理Telnet

在新终端窗口中尝试使用SSH连接服务器,确认能够正常登录,并检查版本:

    ssh -V  # 应显示OpenSSH_10.0p2  

确认无误后,关闭并卸载Telnet服务:

    systemctl stop telnet.socketsystemctl stop xinetdsystemctl disable telnet.socketsystemctl disable xinetdyum remove -y telnet-server xinetd  

同时清理/etc/securetty中添加的行。

7. 常见问题与回滚方案

如果升级后SSH无法启动,可以通过Telnet登录(如果未关闭)或使用带外管理(如IPMI)进行修复。可以回滚到备份版本:

    yum reinstall openssh-server -y   # 恢复系统自带的ssh  

或恢复备份的配置文件并重启sshd。

注意:整个升级过程中,Telnet备份方案是保障远程连接不中断的关键,务必在升级前测试好Telnet登录。

通过以上步骤,您已成功将CentOS7的OpenSSH升级至10.0p2,并掌握了Telnet备份技巧,确保系统安全与可维护性。