本帖最后由 ling218cn 于 2023-9-14 21:48 编辑
## 实验环境
- CentOS 7.9 - OpenSSH 9.4p1 - OpenSSL 3.0.10
## 实验需求
为我的 CentOS7.9 虚拟机编译安装最新 OpenSSH 版本。
*升级前的 OpenSSH 版本:*
```shell [root@localhost ~]# ssh -V OpenSSH_7.4p1, OpenSSL 1.0.2k-fips 26 Jan 2017 ```
*升级后的 OpenSSH 版本:*
```shell [root@localhost build-rpms]# ssh -V OpenSSH_9.4p1, OpenSSL 3.0.10 1 Aug 2023 ```
## 实验解法
### 1、安装编译环境
```shell yum groupinstall -y "Development Tools"
yum install -y imake rpm-build pam-devel krb5-devel zlib-devel libXt-devel libX11-devel gtk2-devel perl-IPC-Cmd ```
*当输出 Complete! 后,说明安装已经完成。*
### 2、克隆 OpenSSH 编译 rpm 包项目
```shell ```
*由于国内网络问题,多尝试几遍 clone*
### 3、编译 OpenSSH
```shell # 切换到打包rpm项目目录下 cd openssh-rpms
# 执行脚本,下载需要编译安装的源码 ./pullsrc.sh
# 执行脚本,开始编译 ./compile.sh
# 查看打包好的 rpm 包 ls -l el7/RPMS/x86_64/ ```
### 4、当前服务器升级 OpenSSH
```shell # 本机升级OpenSSH版本 rpm -Uvh el7/RPMS/x86_64/*.rpm
# 删除本机密钥(该操作一定要做) rm -rf /etc/ssh/ssh_host_*
# 重启sshd服务 systemctl restart sshd
# 查看sshd服务运行状况 systemctl status sshd
# 查看升级后的SSH版本 ssh -V
# 把生成的 rpm 安装包打包 cd el7/RPMS/x86_64 tar -zcvf openssh9.4p1_el7_rpm.tar.gz *.rpm ```
### 5、其他服务器升级 OpenSSH
*上传 `openssh9.4p1_el7_rpm.tar.gz` 到其他服务器,操作步骤略*
*其他服务器上升级 OpenSSH 操作步骤如下:*
```shell tar -zxvf openssh9.4p1_el7_rpm.tar.gz rpm -Uvh *.rpm rm -rf /etc/ssh/ssh_host_* systemctl restart sshd ```
### 6、可能遇到的情况
**问题现象:**
*终端通过 SSH 连接服务器时提示连接超时*
```shell ssh: connect to host 192.168.91.148 port 22: Connection timed out ```
**解决方法:**
*找到 `C:\Users\用户名\.ssh` 目录, 使用记事本的方式打开 `known_hosts` 文件,把文件内容全部删除。重新尝试登陆服务器,问题解决。* |