Centos中openssh升级9.9p2全详细教学

有条件的整个快照

  • 准备工作

下载三个安装包

 Zlib下载地址:

https://zlib.net/ 

OpenSSL下载地址:

https://www.openssl.org/source/

OpenSSH下载地址:

https://mirrors.aliyun.com/pub/OpenBSD/OpenSSH/portable/

安装telnet 以便openssh升级失败无法远程!!!

无法使用telnet的可以不用安装)。

yum install xinetd
yum install telnet
yum install telnet-server

systemctl start telnet.socket

注意linux下telnet服务在默认情况下root无法登录,普通账号可以登录root可以登录的方法:

vi /etc/securetty

添加

pts/0

pts/1

pts/2

pts/3

如果登录的用户比较多,可能需要更多的pts/**

这样添加的作用,是允许root从pts/0到pts/3这几个终端登录linux

保存以后,就可以用root登录telnet了

二、安装包解压

安装包统一存放在 /opt 目录下

for i in *.gz;do tar -xvf $i; done

上方命令为解压所有.gz的压缩包

  • 升级依赖

Yum源如果用不了,问当地是否有自己的yum源,并且配置,如果没有自己下载相应的依赖包并且安装

yum -y install gcc gcc-c++ kernel-devel

四、安装zlib

./configure --prefix=/usr/local/zlib

make && make install

五、安装openssl

./config --prefix=/usr/local/ssl -d shared

make && make install

echo '/usr/local/ssl/lib' >> /etc/ld.so.conf

ldconfig -v

六、安装openssh

./configure --prefix=/usr/local/openssh --with-zlib=/usr/local/zlib --with-ssl-dir=/usr/local/ssl

--without-openssl-header-check

make && make install

七、sshd_config文件修改

echo 'PermitRootLogin yes' >>/usr/local/openssh/etc/sshd_config

echo 'PubkeyAuthentication yes' >>/usr/local/openssh/etc/sshd_config

echo 'PasswordAuthentication yes' >>/usr/local/openssh/etc/sshd_config

八、备份原有文件,并将新的配置复制到指定目录

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

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

九、重启sshd服务

systemctl restart sshd

最好先查看下方sshd是否启用,谨慎重启sshd,如果没有的话,进行下方操作

注意:

1、可能会出现sshd 启动超时,解决办法:

先停掉sshd服务,将sshd原服务改名(或备份删除),使用安装包里自带的sshd.init,复制到/etc/init.d/sshd,重启即可

systemctl daemon-reload(重启之前执行命令重载systemctl命令)

systemctl stop sshd

mv /lib/systemd/system/sshd.service /lib/systemd/system/sshd.service.bak

cp /opt/openssh-8.4p1/contrib/redhat/sshd.init /etc/init.d/sshd

/etc/init.d/sshd restart

systemctl status sshd

2、xshell 连接工具报错

解决办法:

解决方法:在/etc/ssh/sshd_config最后增加以下一行

KexAlgorithms curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group14-sha1

重启sshd服务。

注意:如果xshell是5.0版本,此方法不生效,只能升级xshell版本。

至此openssh 升级完成

ssh -V 验证

注意:telnet服务属于不安全的远程连接服务,ssh正常后,此服务需要卸载。

yum remove telnet

yum remove telnet-server

yum remove xinetd

<think>好的,用户想将OpenSSH升级9.9p2版本,需要查找具体的方法。首先,我需要查看提供的引用内容,看看有哪些可用的信息。 根据引用[1],提到了通过源码安装的方法,需要下载openssh9.9p1.tar.gz文件,并上传到服务器。但用户需要的是9.9p2版本,可能需要确认是否有对应的源码包。不过引用[2]提到OpenSSH-9.9p2 RPM包已发布,支持多个Linux发行版,如CentOS 7/8等。同时引用[4]也指出有各个操作系统的rpm包,内嵌OpenSSL 1.1.1w。所以使用RPM包安装可能更方便。 用户可能需要两种方法:RPM安装和源码编译。引用[3]还提到源码安装前建议安装telnet服务作为备用连接方式,避免升级过程中SSH不可用导致无法连接服务器。因此,在回答中需要强调备份和备用访问方法的重要性。 需要整理步骤,首先备份原配置,然后选择RPM或源码方式。对于RPM方法,需要下载对应的RPM包和配套的OpenSSL,然后使用yum或rpm命令安装。对于源码方式,下载源码包,解压编译安装,之后重启服务。同时,注意检查版本是否升级成功,以及回滚的方法。 还要考虑用户可能使用的系统版本,比如CentOS 7,需要对应的RPM包。此外,提醒用户测试telnet服务是否正常,确保升级过程中不会失去服务器访问权限。 最后,生成相关问题,涵盖升级后的验证、回滚方法、系统兼容性以及源码与RPM的区别等,帮助用户面了解升级过程和相关注意事项。</think>### OpenSSH 升级9.9p2 版本的操作步骤 #### **方法一:通过 RPM 包升级(推荐)** 1. **备份配置文件** 执行命令备份原配置: ```bash cp -r /etc/ssh /etc/ssh_backup ``` 2. **下载 RPM 包** 根据系统架构和版本选择对应的 RPM 包(需配套 OpenSSL)[^2][^4]: - OpenSSH-9.9p2 RPM 包下载地址(需配套 OpenSSL-3.3.1)[^2] - 或选择内嵌 OpenSSL-1.1.1w 的 RPM 包 3. **安装依赖与 RPM 包** ```bash # 安装依赖(CentOS 7 示例) yum install -y openssl-devel pam-devel zlib-devel # 安装 OpenSSL 和 OpenSSH RPM 包 rpm -Uvh openssl-*.rpm openssh-*.rpm ``` 4. **重启 SSH 服务** ```bash systemctl restart sshd ssh -V # 验证版本是否显示 9.9p2 ``` --- #### **方法二:通过源码编译安装** 1. **安装 Telnet 备用连接(避免升级失败导致失联)[^3]** ```bash yum install -y telnet-server telnet systemctl start telnet.socket ``` 2. **下载源码并编译** ```bash wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.9p2.tar.gz tar -zxvf openssh-9.9p2.tar.gz cd openssh-9.9p2 ./configure --prefix=/usr --sysconfdir=/etc/ssh --with-ssl-dir=/usr/local/ssl make && make install ``` 3. **更新配置并重启服务** ```bash cp contrib/redhat/sshd.init /etc/init.d/sshd systemctl daemon-reload systemctl restart sshd ``` --- #### **注意事项** - **兼容性**:RPM 包支持 CentOS 7/8、AlmaLinux 8、Kylin-V10 等系统[^2][^4] - **回滚方案**:若升级失败,可通过备份的 `/etc/ssh_backup` 恢复配置文件 - **安建议**:升级后关闭 Telnet 服务,仅保留 SSH ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值