实验环境
- CentOS 7.9
- OpenSSH 9.4p1
- OpenSSL 3.0.10
实验需求
为我的 CentOS7.9 虚拟机编译安装最新 OpenSSH 版本。
升级前的 OpenSSH 版本:
[root@localhost ~]# ssh -V
OpenSSH_7.4p1, OpenSSL 1.0.2k-fips 26 Jan 2017
升级后的 OpenSSH 版本:
[root@localhost build-rpms]# ssh -V
OpenSSH_9.4p1, OpenSSL 3.0.10 1 Aug 2023
实验解法
1、安装编译环境
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 包项目
git clone https://github.com/ling218/openssh-rpms
由于国内网络问题,多尝试几遍 clone
3、编译 OpenSSH
# 切换到打包rpm项目目录下
cd openssh-rpms
# 执行脚本,下载需要编译安装的源码
./pullsrc.sh
# 执行脚本,开始编译
./compile.sh
# 查看打包好的 rpm 包
ls -l el7/RPMS/x86_64/
4、当前服务器升级 OpenSSH
# 本机升级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 操作步骤如下:
tar -zxvf openssh9.4p1_el7_rpm.tar.gz
rpm -Uvh *.rpm
rm -rf /etc/ssh/ssh_host_*
systemctl restart sshd
6、可能遇到的情况
问题现象:
终端通过 SSH 连接服务器时提示连接超时
PS C:\Users\Xiaohui> ssh root@192.168.91.148
ssh: connect to host 192.168.91.148 port 22: Connection timed out
解决方法:
找到 C:\Users\用户名\.ssh
目录, 使用记事本的方式打开 known_hosts
文件,把文件内容全部删除。重新尝试登陆服务器,问题解决。