此文檔提供方法爲官方源碼build成rpm後,用rpm進行升級,在Centos7.5.1804下實現,其餘環境未經測試。centos
1.Rpmbuild打包ssh
Rpmbuild環境要與目標環境同樣(即在centos7.5.1804上編譯)ide
#安裝依賴測試
yum install rpm-build pam-devel zlib zlib-devel perl krb5-devel pam-devel gcc make wget libX11-devel xmkmf libXt-devel initscripts -yui
yum install openssl openssl-devel -ycentos7
#建立編譯目錄spa
mkdir -p ~/rpmbuild/{SOURCES,SPECS} && cd ~/rpmbuild/SOURCES/debug
#下載源碼包和依賴包rest
wget http://ftp.riken.jp/Linux/momonga/6/Everything/SOURCES/x11-ssh-askpass-1.2.4.1.tar.gzcdn
wget https://cloudflare.cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-8.0p1.tar.gz
tar xf openssh-8.0p1.tar.gz
#拷貝配置文件
cp openssh-8.3p1/contrib/redhat/openssh.spec ~/rpmbuild/SPECS/
cd ~/rpmbuild/SPECS/
#修改配置文件
sed -i -e "s/%define no_gnome_askpass 0/%define no_gnome_askpass 1/g" openssh.spec
sed -i -e "s/%define no_x11_askpass 0/%define no_x11_askpass 1/g" openssh.spec
#編譯
rpmbuild -ba openssh.spec
#若是編譯過程當中報openssl-devel的問題,能夠下面註釋掉依賴
sed -i 's/BuildRequires: openssl-devel < 1.1/#BuildRequires: openssl-devel < 1.1/g' openssh.spec
2. 安裝包說明
[root@testserver3 tmp]# ll
total 8300
-rw-r--r--. 1 root root 4034560 Jan 8 11:13 openssh-8.0p1-1.el7.offline.tar #U盤攜帶包
-rw-r--r--. 1 root root 4464640 Jan 7 16:44 openssh-8.3p1-1.el7.offline.tar
[root@testserver3 tmp]# tar xf openssh-8.0p1-1.el7.offline.tar
[root@testserver3 tmp]# ll openssh-8.0p1-1.el7.offline
total 3936
-rw-r--r--. 1 root root 514232 Jan 8 11:12 openssh-8.0p1-1.el7.centos.x86_64.rpm
-rw-r--r--. 1 root root 505616 Jan 8 11:12 openssh-clients-8.0p1-1.el7.centos.x86_64.rpm
-rw-r--r--. 1 root root 2603832 Jan 8 11:12 openssh-debuginfo-8.0p1-1.el7.centos.x86_64.rpm
-rw-r--r--. 1 root root 400260 Jan 8 11:12 openssh-server-8.0p1-1.el7.centos.x86_64.rpm
[root@testserver3 openssl-1.1.1i.el7.offline]#
注:以上rpm包爲根據官方源碼包openssh-8.0p1.tar.gz rpmbuild生成
3.安裝
2.1.安裝前查看狀態
[root@testserver3 openssh-8.0p1-1.el7.offline]# rpm -qa |grep openssh
openssh-server-7.4p1-16.el7.x86_64
openssh-clients-7.4p1-16.el7.x86_64
openssh-7.4p1-16.el7.x86_64
2.2.執行升級
[root@testserver3 openssh-8.0p1-1.el7.offline]# ll
total 3936
-rw-r--r--. 1 root root 514232 Jan 8 11:12 openssh-8.0p1-1.el7.centos.x86_64.rpm
-rw-r--r--. 1 root root 505616 Jan 8 11:12 openssh-clients-8.0p1-1.el7.centos.x86_64.rpm
-rw-r--r--. 1 root root 2603832 Jan 8 11:12 openssh-debuginfo-8.0p1-1.el7.centos.x86_64.rpm
-rw-r--r--. 1 root root 400260 Jan 8 11:12 openssh-server-8.0p1-1.el7.centos.x86_64.rpm
[root@testserver3 openssh-8.0p1-1.el7.offline]# rpm -Uvh *.rpm
Preparing... ################################# [100%]
Updating / installing...
1:openssh-8.0p1-1.el7.centos ################################# [ 14%]
2:openssh-clients-8.0p1-1.el7.cento################################# [ 29%]
3:openssh-server-8.0p1-1.el7.centos################################# [ 43%]
4:openssh-debuginfo-8.0p1-1.el7.cen################################# [ 57%]
Cleaning up / removing...
5:openssh-server-7.4p1-16.el7 ################################# [ 71%]
6:openssh-clients-7.4p1-16.el7 ################################# [ 86%]
7:openssh-7.4p1-16.el7 ################################# [100%]
2.3.安裝新版本及驗證
[root@testserver3 openssh-8.0p1-1.el7.offline]# rpm -qa |grep openssh
openssh-clients-8.0p1-1.el7.centos.x86_64
openssh-debuginfo-8.0p1-1.el7.centos.x86_64
openssh-8.0p1-1.el7.centos.x86_64
openssh-server-8.0p1-1.el7.centos.x86_64
[root@testserver3 openssh-8.0p1-1.el7.offline]# ssh -V
OpenSSH_8.0p1, OpenSSL 1.0.2k-fips 26 Jan 2017
以上openssh的版本更新成功,但ssh沒法啓動,下面操做去解決。
2.4.更新下面3個sshd_config配置參數以下:
# grep -E 'PermitRootLogin|UsePAM|PasswordAuthentication' /etc/ssh/sshd_config |grep -Ev '^#'
PermitRootLogin yes
PasswordAuthentication yes
UsePAM no
2.5.重啓sshd服務,驗證SSH可正常登錄
[root@testserver3 openssh-8.0p1-1.el7.offline]# systemctl restart sshd