一、有网环境操作
# 安装依赖包
yum install --downloadonly --downloaddir=/home/rpm-instal rpm-build gcc gcc-c++ glibc glibc-devel openssl-devel openssl pcre-devel zlib zlib-devel make wget krb5-devel pam-devel libX11-devel xmkmf libXt-devel initscripts libXt-devel imake gtk2-devel lrzsz
yum install -y rpm-build gcc gcc-c++ glibc glibc-devel openssl-devel openssl pcre-devel zlib zlib-devel make wget krb5-devel pam-devel libX11-devel xmkmf libXt-devel initscripts libXt-devel imake gtk2-devel lrzsz
# 创建RPM包的相关目录
mkdir -pv /root/rpmbuild/{BUILD,BUILDROOT,RPMS,SOURCES,SPECS,SRPMS}
# 打开OpenSSH官网下载最新版本的Openssh 9.3p2和相关依赖包
cd /root/rpmbuild/SOURCES/
wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.3p2.tar.gz
tar -xf openssh-9.3p2.tar.gz
wget https://src.fedoraproject.org/repo/pkgs/openssh/x11-ssh-askpass-1.2.4.1.tar.gz
# 配置相关编译文件
cp openssh-9.3p2/contrib/redhat/openssh.spec /root/rpmbuild/SPECS/
cd /root/rpmbuild/SPECS/
#不生产ask包
sed -i -e "s/%global no_gnome_askpass 0/%global no_gnome_askpass 1/g" openssh.spec
sed -i -e "s/%global no_x11_askpass 0/%global no_x11_askpass 1/g" openssh.spec
#修改openssl-devel的报错
sed -i '/openssl-devel < 1.1/s/^/#/' openssh.spec
#修改PreReq的报错
sed -i '/PreReq:/s/^/#/' openssh.spec
# 编译文件
rpmbuild -ba openssh.spec
#
cd /root/rpmbuild/RPMS/x86_64
ll
total 9780
-rw-r--r-- 1 root root 648612 Aug 4 11:06 openssh-9.3p2-1.el7.x86_64.rpm
-rw-r--r-- 1 root root 641296 Aug 4 11:06 openssh-clients-9.3p2-1.el7.x86_64.rpm
-rw-r--r-- 1 root root 3273756 Aug 4 11:06 openssh-debuginfo-9.3p2-1.el7.x86_64.rpm
-rw-r--r-- 1 root root 472476 Aug 4 11:06 openssh-server-9.3p2-1.el7.x86_64.rpm
# 打包所有rpm包
tar -zcvf openssh9.3p2_el7_rpms.tar.gz *.rpm
二、无网环境操作
# 统一目录
mkdir -pv /root/rpmbuild/{BUILD,BUILDROOT,RPMS,SOURCES,SPECS,SRPMS}
mkdir /root/rpmbuild/RPMS/x86_64
# 上传刚刚打好的包openssh9.3p2_el7_rpms.tar.gz到/root/rpmbuild/RPMS/x86_64
# 解压
cd /root/rpmbuild/RPMS/x86_64
tar -zxvf openssh9.3p2_el7_rpms.tar.gz
# 安装rpm包
rpm -Uivh *.rpm
#修改文件权限
chmod 600 /etc/ssh/ssh_host_rsa_key
chmod 600 /etc/ssh/ssh_host_ecdsa_key
chmod 600 /etc/ssh/ssh_host_ed25519_key
# 修改/etc/ssh/ssh_config的配置,使其可以远程连接,如下图
# /etc/ssh/sshd_config最好也修改一下,直接添加这两行就好
PermitRootLogin yes
Port 22
PasswordAuthentication yes
# 重启sshd服务
systemctl restart sshd
# 验证
ssh -V
sshd -V
rpm -aq | grep openssh