關鍵字:根據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、其它