openssh 8 源碼打包成rpm


關鍵字:根據openssh源碼包,制作rpm安裝包;升級 openssh

 

1、下載源碼包:官網openssh.com ---- release ,以openssh-8.8p1.tar.gz為例

2、建立環境:

  a:建立目錄    

mkdir -p /root/rpmbuild/{SOURCES,SPECS,RPMS,SRPMS,BUILD,BUILDROOT}

 

  b:安裝相應的應用包

yum install gcc gcc-c++ glibc glibc-devel openssl-devel openssl prce pcre-devel zlib zlib-devel make wget krb5-devel pam-devel libX11-devel xmkmf libXt-devel initscripts libXt-devel imake gtk2-devel

  

3、配置及打包過程(文件名及目錄名並不准確)

  a、將源碼文件放置到SOURCE目錄

  b、展開此文件,在SOURCE\opensshxxx\contrib/redhat/openssh-spec文件放置到SPECS目錄

  c、修改此openssh-spec文件

   

  d、(可選)對最終得到的rpm包的配置文件進行配置

%post server定位到這里,加入以下行
chmod  600  /etc/ssh/ssh_host_*_key
sed -i -e  "s/#PermitRootLogin prohibit-password/PermitRootLogin yes/g"    /etc/ssh/sshd_config
sed -i -e  "s/^UsePAM.*/UsePAM no/g"  /etc/ssh/sshd_config

  上面兩行的意思是:新建的rpm包安裝后,允許root用戶遠程ssh;UsePAM行是不使用PAM。

  %post server這下面可以做的工作非常多,相當於對你打包完成的應用進行各種默認配置、進程的運行級等等

  e、制作rpm安裝包

rpmbuild -bb  openssh-spec

  完成后,rpm包放置在RPMS目錄里。對其對行打包即可直接分發。

  

tar cvf /root/openssh-8-update.tar RPMS/*.rpm

  

  f、完成,得到openssh-8-update.tar包

        說明:如果不進行d步驟,打包完成后,安裝這個rpm,默認root用戶不能登錄

4、遠程不掉線升級過程

  假設原系統是openssh-7.4,主機IP為x.x.x.x

  [避免升級失敗]ssh x.x.x.x,然后執行ping命令,避免timeout退出,這一步主要是起預防升級出錯造成遠程無法連接到主機

 

  再開一個ssh到x.x.x.x,不要停掉原sshd服務,直接升級openssh

rpm -Uvh openssh*.rpm

  升級完成后,停掉sshd,然后再重新啟動sshd,就是最新版了。如果這一步啟動sshd失敗,或者意外掉線了,不要害怕,可以利用之前一直在執行ping的那個ssh連接進行排查,避免造成升級失敗后遠程無法連接的情況

 

5、其它

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM