centos 7アップグレードOpenSSH(ソースコードコンパイルアップグレード)


アップグレードする前に、まず現在のopenssh、openssl、zlibのバージョンを決定し、バージョン操作を表示します.
[root@mysql ~]# ssh -V
OpenSSH_7.4p1, OpenSSL 1.0.2k-fips  26 Jan 2017
[root@mysql ~]# rpm -q zlib
zlib-1.2.7-17.el7.x86_64

現在のopensshバージョンは7.4 p 1、opensslバージョンは1.02 k-fips、zlibであることがわかります.
バージョンは1.2.7です.
該当する公式サイトに最新バージョンをダウンロードする
OpenSSH:https://cloudflare.cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/
OpenSSL: https://www.openssl.org/source/
zlib: https://www.openssl.org/source/
アップグレード中にエラーが発生してsshdサービスが停止しないように、telnetサービスをインストールしたり、機械室で故障を処理したりすることができます.
OpenSSLのアップグレード方法は私の別の文章を参考にしますhttps://blog.51cto.com/mading/2161246
注意:アップグレードする前にgccコンパイル環境がインストールされていることを確認し、selinuxを閉じ、アップグレードする前にバックアップしてください.
zlibアップグレード
古いバージョンzlibをアンインストール
[root@mysql ~]# rpm -e  --nodeps  zlib

コンパイルの解凍
[root@mysql ~]# tar -zxvf zlib-1.2.11.tar.gz
[root@mysql ~]# cd zlib-1.2.11/
[root@mysql zlib-1.2.11]# ./configure --prefix=/usr/local/zlib
[root@mysql zlib-1.2.11]# make test
[root@mysql zlib-1.2.11]#make install 

共有ライブラリの構築
[root@mysql zlib-1.2.11]#make clean
[root@mysql zlib-1.2.11]#./configure --shared
[root@mysql zlib-1.2.11]#make test
[root@mysql zlib-1.2.11]#make install 

OpenSSHアップグレード
古いバージョンopensshのアンインストール
[root@mysql ~]# rpm -e  --nodeps  openssh

コンパイルの解凍
[root@mysql ~]# tar -zxvf openssh-8.0p1.tar.gz 
[root@mysql openssh-8.0p1]#./configure --prefix=/usr --sysconfdir=/etc/ssh --with-md5-passwords --with-pam --with-zlib --with-ssl-dir=/usr/local/ssl --with-privsep=path=/var/lib/sshd
*  :--with-zlib --with-ssl-dir        openssl   *
[root@mysql openssh-8.0p1]#make && make install 

コンパイル中に様々なエラーが発生する可能性がありますが、ヒントのエラー情報に基づいて解決策を探します.ここでは具体的な説明はしません.コンパイルが完了したら、インストールに成功したかどうかを確認します.
[root@mysql openssh-8.0p1]# ssh -V
OpenSSH_8.0p1, OpenSSL 1.1.0k  28 May 2019

コンフィギュレーション
[root@mysql openssh-8.0p1]# install -v -m755 contrib/ssh-copy-id /usr/bin/
"contrib/ssh-copy-id" -> "/usr/bin/ssh-copy-id"
[root@mysql openssh-8.0p1]# install -v -m644 contrib/ssh-copy-id.1 /usr/share/man/man1
"contrib/ssh-copy-id.1" -> "/usr/share/man/man1/ssh-copy-id.1"
[root@mysql openssh-8.0p1]# install -v -m755 -d /usr/share/doc/openssh-8.0p1*  :openssh-8.0p1     openssh     *
install:       "/usr/share/doc/openssh-8.0p1"
[root@mysql openssh-8.0p1]# install -v -m644 INSTALL LICENCE OVERVIEW README* /usr/share/doc/openssh-8.0p1
"INSTALL" -> "/usr/share/doc/openssh-8.0p1/INSTALL"
"LICENCE" -> "/usr/share/doc/openssh-8.0p1/LICENCE"
"OVERVIEW" -> "/usr/share/doc/openssh-8.0p1/OVERVIEW"
"README" -> "/usr/share/doc/openssh-8.0p1/README"
"README.dns" -> "/usr/share/doc/openssh-8.0p1/README.dns"
"README.md" -> "/usr/share/doc/openssh-8.0p1/README.md"
"README.platform" -> "/usr/share/doc/openssh-8.0p1/README.platform"
"README.privsep" -> "/usr/share/doc/openssh-8.0p1/README.privsep"
"README.tun" -> "/usr/share/doc/openssh-8.0p1/README.tun"

デフォルトポートは22です.rootのデフォルトではリモートログインはできません./etc/ssh/sshd_configに「PermitRootLogin yes」を追加
[root@mysql openssh-8.0p1]# vim /etc/ssh/sshd_config

sshd起動の構成
[root@mysql openssh-8.0p1]# cp -p contrib/redhat/sshd.init /etc/init.d/sshd
[root@mysql openssh-8.0p1]# chmod a+x /etc/init.d/sshd 
[root@mysql openssh-8.0p1]# chkconfig --add sshd
[root@mysql openssh-8.0p1]# chkconfig sshd on