環境のアップグレード
システムは CentOS7.9 バージョンで、OpenSSH バージョンはデフォルトの 7.4 バージョンです。
ソフトウェアパッケージの準備
インターネットに接続できる CentOS7.9 の仮想マシンを準備し、telnet 関連の rpm パッケージをオフラインで使用するためにダウンロードします。
yum install --downloadonly --downloaddir=. xinetd telnet telnet-server
新しい OpenSSH の rpm パッケージは、Github 上のオープンソーススクリプトを使用してパッケージ化できます。
https://github.com/boypt/openssh-rpms
OpenSSH のアップグレード前に telnet を有効にする(オプション)#
オフラインで telnet サービスをインストールし、rpm コマンドを使用して telnet をインストールします。
telnet サービスには telnet-server と xinetd の 2 つのパッケージをインストールする必要があります。telnet はクライアントツールです。
xinetd.service と telnet.socket サービスを起動します。
systemctl restart xinetd.service telnet.socket
root でログインするには、/etc/securetty
ファイルの末尾に pts 端末を追加する必要があります。
[root@localhost ~]# echo pts/0 >> /etc/securetty
[root@localhost ~]# echo pts/1 >> /etc/securetty
サーバーがファイアウォールを有効にしている場合、telnet を許可する必要があります。
[root@localhost ~]# firewall-cmd --add-service=telnet
この時点で telnet を使用してサーバーにログインできるようになりました。
OpenSSH のアップグレード#
rpm パッケージにパッケージ化されたため、ソースコードのコンパイルよりも簡単になりました。rpm コマンドを使用してアップグレードできます。
yum コマンドを使用して openssh をアンインストールします。
[root@localhost ~]# yum remove openssh openssh-clients openssh-server
rpm パッケージを解凍してインストールします。インストール前に元の ssh 設定をバックアップすることをお勧めします。
[root@localhost ~]# tar xf openssh-9.9p1-1.el7.tar.gz
[root@localhost ~]# mv /etc/ssh /etc/ssh.bak
[root@localhost ~]# rpm -ivh openssh*.rpm
新しい openssh のインストールが完了したら、sshd を再起動し、起動時に自動的に開始するように設定します。
sshd サービスは正常に起動しましたが、1 つのエラーメッセージが表示されます。openssh9.9 バージョンはデフォルトで dsa を無効にしています。
/sbin/restorecon: lstat(/etc/ssh/ssh_host_dsa_key.pub) failed: No such...
設定ファイルを変更して dsa_key の読み込みを無効にします。
変更後、設定を再読み込みして sshd サービスを再起動すると、エラーメッセージが消えます。
openssh のアップグレードが完了しました。