我们使用开源github上面的脚本来实现升级至最新版本的openssh版本

准备编译环境

yum -y install epel-release
yum -y install git zip unzip
yum -y groupinstall "Development Tools"
yum -y install  imake rpm-build pam-devel krb5-devel zlib-devel libXt-devel libX11-devel gtk2-devel

修改脚本

git clone https://github.com/boypt/openssh-rpms.git

cd openssh-rpms

将compile.sh和pullsrc.sh文件中

source version.env修改为source ./version.env

修改完成如下图

将出现wget的行加上--no-check-certificate 参数,避免因为证书问题导致源码下载失败。(新版本已加上--no-check-certificate参数,无需再自己修改)

#grep "wget" pullsrc.sh

解决默认openssh源码中没有ssh-copy-id的问题

修改vim openssh-rpms/el7/SPECS/openssh.spec文件

install -d $RPM_BUILD_ROOT%{_libexecdir}/openssh

install -m644 %{SOURCE2} $RPM_BUILD_ROOT/etc/pam.d/sshd

中间插入

install -m755 contrib/ssh-copy-id $RPM_BUILD_ROOT/usr/bin/ssh-copy-id

%attr(0755,root,root) %{_bindir}/ssh-keygen
%attr(0644,root,root) %{_mandir}/man1/ssh-keygen.1*
中间插入
%attr(0755,root,root) %{_bindir}/ssh-copy-i

编译打包最新版本openssh

sh pullsrc.sh
然后编译安装
./compile.sh

编译顺利的话就会在openssh-rpms/el7/RPMS/x86_64目录下生产openssh最新版的rpm包。

说明
本站也提供已编译好的CentOS 7.x的rpm包,完全一键安装,比较适合伸手党,请站主喝一杯咖啡,然后联系站主提供最新rpm包。

注意

但编译有可能会报错,比如报:Can't locate IPC/Cmd.pm in @INC错误。

这是因为缺少IPC/Cmd.pm模块。解决方法:

安装perl-CPAN

yum install -y perl-CPAN

进入CPAN的shell模式,首次进入需要配置shell,按照提示操作即可(有可能网络很慢,需要耐心等待安装)

perl -MCPAN -e shell

在shell中安装缺少的模块

cpan[1]> install IPC/Cmd.pm