Openssh编译打包教程,红帽系列el6和el7
2026/4/16 1:39:09 网站建设 项目流程

准备工作

  1. 找一台测试服务器(要根据要打包的操作系统版本准备不同的测试服务器,el6对应6.0,el7对应7.0)
  2. Openssh源码包:https://www.openssh.org/下载最新版本
  3. Openssl源码包:https://openssl-library.org/source/ 下载最新版本
  4. openssh-rpms-main编译工具:https://github.com/boypt/openssh-rpms 下载最新版本

编译前准备

  1. 安装编译环境
yum groupinstall-y"Development Tools"yuminstall-yimake rpm-build pam-devel krb5-devel zlib-devel libXt-devel libX11-devel gtk2-devel
  1. 将下载的openssh、openssl、openssh-rpms-main包上传到服务器任意目录,此处以/home为例
cd/homels# openssh-10.3p1.tar.gz openssh-rpms-main.zip openssl-3.0.20.tar.gz

开始编译

  1. 解压openssh-rpms-main包,将openssh和openssl包放到对应的目录下,el6和el7的目录不一致,请注意区分,如果是el6的在下面目录中openssh-rpms-main的下级目录选择el6
unzipopenssh-rpms-main.zip# download目录cpopenssh-10.3p1.tar.gz openssh-rpms-main/downloads/cpopenssl-3.0.20.tar.gz openssh-rpms-main/downloads/# SOURCES目录cpopenssh-10.3p1.tar.gz openssh-rpms-main/el7/SOURCES/cpopenssl-3.0.20.tar.gz openssh-rpms-main/el7/SOURCES/

  1. 修改编译参数文件
cd../SPECSvimopenssh.spec# 避免安装完成后不支持ssh-copy-id# 找到如下行install-d$RPM_BUILD_ROOT%{_libexecdir}/opensshinstall-m644%{SOURCE2}$RPM_BUILD_ROOT/etc/pam.d/sshd# 这两行中间插入install-m755contrib/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-id

  1. 修改编译环境参数
cd/home/openssh_upddate/openssh-rpms-main/vimversion.env# 修改如下两行为你现在的包名称OPENSSLSRC=openssl-3.0.20.tar.gzOPENSSHSRC=openssh-10.3p1.tar.gz

  1. 执行编译打包
cd/home/openssh_upddate/openssh-rpms-main/ ./compile.sh

以上为编译完成,编译完成后的包可以在对应的el文件夹下的RPM目录查看到,下载之后更新到服务器即可

附:安装openssh的rpm过程

# backup config filescp/etc/pam.d/sshd /etc/pam.d/sshd.bak.$(date+%Y%m%d)cp/etc/ssh/sshd_config /etc/ssh/sshd_config.bak.$(date+%Y%m%d)cp/etc/pam.d/system-auth /etc/pam.d/system-auth.bak.$(date+%Y%m%d)# 安装上述所有rpm包rpm-Uvh*.rpm# config key filechmod0600 /etc/ssh/ssh_host_rsa_keychmod0600 /etc/ssh/ssh_host_ecdsa_keychmod0600 /etc/ssh/ssh_host_ed25519_key# restore config filescp/etc/pam.d/sshd.bak.$(date+%Y%m%d)/etc/pam.d/sshdcp/etc/ssh/sshd_config.bak.$(date+%Y%m%d)/etc/ssh/sshd_configcp/etc/pam.d/system-auth.bak.$(date+%Y%m%d)/etc/pam.d/system-auth# replace GSSAPIAuthentication yessed-i-e"s/#GSSAPIAuthentication yes/GSSAPIAuthentication yes/g"/etc/ssh/sshd_config#replace GSSAPICleanupCredentials nosed-i-e"s/#GSSAPICleanupCredentials no/GSSAPICleanupCredentials no/g"/etc/ssh/sshd_config# restart sshdsystemctl restart sshd# check openssh versionssh-V&&/usr/sbin/sshd-V

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询