1、システム環境の設定

1.1、システム環境

Terminal window
# lsb_release -d
Description: CentOS Linux release 7.9.2009 (Core)
#uname -r
3.10.0-327.el7.x86_64
#ssh -V
OpenSSH_7.4p1, OpenSSL 1.0.2k-fips 26 Jan 2017

1.2、必要なコンパイル環境をインストールする

yum install gcc

1.3、Openssh をアップグレードする際の注意事項

  • アップグレード プロセス中は、リモート ツールに接続されている ssh サービスが切断されていないことを必ず確認してください。
  • SSH 接続の安定性は保証できません。Telnet サービスがクラウド サービスの場合は、ホストのバックグラウンド コンソール サービスが利用可能であることを確認してください。
  • コンパイルされた sshd サービスを開始するのに再起動を使用せず、直接開始してください。

2、Openssh依存環境をインストールする

2.1、zlib環境をインストールする

Terminal window
# rpm -qa | grep zlib # システムのzlibパッケージ環境を確認してください
zlib-1.2.7-19.el7_9.x86_64
zlib-1.2.7-19.el7_9.i686
# yum install zlib-devel -y
# rpm -qa | grep zlib
zlib-1.2.7-19.el7_9.x86_64
zlib-devel-1.2.7-19.el7_9.x86_64
zlib-1.2.7-19.el7_9.i686

2.2、OpenSSL をコンパイルしてインストールする

ダウンロードURL

Terminal window
# tar -xvf openssl-1.1.1l.tar.gz
# cd openssl-1.1.1l
# ./config --perfix=/usr/local/openssl
# make && make install
# echo '/usr/local/openssl/lib' >> /etc/ld.so.conf
# ldconfig -v
システムに付属するコンパイルおよびインストールされた openssl のバージョンが正常であるかどうかを確認します。
# /usr/local/openssl/bin # コンパイルされた openssl ディレクトリを入力します
# ./openssl version
Openssl 1.1.1l 25 Aug 2021 # コンパイルされた openssl バージョン
# openssl version
OpenSSL 1.0.2k-fips 26 Jan 2017 # システムバージョン

3、Opensshをコンパイルしてインストールする

3.1、処理システムには Openssh が付属しています

警告: 現在の操作の実行中に、現在の ssh セッションが切断されていないことを確認してください。

Terminal window
# rpm -qa | grep openssh
openssh-server-7.4p1-21.el7.x86_64
openssh-clients-7.4p1-21.el7.x86_64
openssh-7.4p1-21.el7.x86_64
元の openssh 構成をバックアップします。
# cp -rf /etc/ssh /etc/ssh_bak
# rpm -e --nodeps `rpm -qa | grep openssh` # opensshのアンインストールを実行
# rpm -qa | grep openssh # openssh を表示する
基本ツールが通常に使用されており、コマンドの実行時にエラーが報告されないことを確認します。
# curl -V
# wget -V
# yum --version

3.2、Opensshをコンパイルしてインストールする

ダウンロードURL

Terminal window
# tar -xvf openssh-8.7.tar.gz
# cd openssh-8.7
# ./configure --prefix=/usr/local/openssh --sysconfdir=/etc/ssh --with-ssl-dir=/usr/local/openssl
# make && make install
実行可能ファイルをシステムの`bin`ディレクトリにコピーします。
# cp /usr/local/openssh/sbin/sshd /usr/sbin/sshd
# cp /usr/local/openssh/bin/ssh /usr/bin/ssh
# cp /usr/local/openssh/bin/ssh-keygen /usr/bin/ssh-keygen
sshd起動スクリプトをコピーする
# cp contrib/redhat/sshd.init /etc/init.d/sshd

3.3、コンパイルされた sshd_config ファイルを変更します

Terminal window
Port 22 # リスニングポート
PermitRootLogin yes # root ログインを許可する
PasswordAuthentication yes # パスワードの検証
ファイルの最後に次の内容を追加します:
KexAlgorithms curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group14-sha1

3.4、コンパイルされた openssh は起動時に自動起動を追加します

警告: 現在の操作中に /etc/init.d/sshd restart を実行しないでください。,そうしないと、現在の ssh セッションが強制的に切断されます。 正しい方法

Terminal window
# /etc/init.d/sshd start
Starting sshd: [ok]

サービス起動後、設定したポートが正常であることを確認してください

Terminal window
# netstat -tpln | grep ssh
tcp 0 0 0.0.0.0:22 0.0.0.0:*
添加sshd开机自启
# chkconfig --list | grep sshd # 現在のシステム sshd が起動時に自動的に起動するように追加されているかどうかを確認します
# chkconfig sshd on # 起動時に自動起動を追加
# chkconfig --list | grep sshd # 正常に参加して起動時に自動的に起動するかどうかを確認する
sshd 0:off 1:off 2:on 3:on 4:on 5:on 6:off

4、Openssh アップグレードの確認

リモート ツールを使用して新しいセッション接続を作成し、SSH 経由でサーバーにリモート接続できることを確認します。 アップグレードされたバージョンを確認する

Terminal window
# ssh -V
OpenSSH_8.7p1, OpenSSL 1.1.1l 25 Aug 2021

アップグレードは完全に成功しました