yzbtdiy

yzbtdiy

github
bilibili

CentOS7.9でOpenSSH9.9をアップグレード

環境のアップグレード

システムは CentOS7.9 バージョンで、OpenSSH バージョンはデフォルトの 7.4 バージョンです。

image

ソフトウェアパッケージの準備

インターネットに接続できる 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 はクライアントツールです。

image

xinetd.service と telnet.socket サービスを起動します。

systemctl restart xinetd.service telnet.socket

image

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

image

この時点で telnet を使用してサーバーにログインできるようになりました。

image

OpenSSH のアップグレード#

rpm パッケージにパッケージ化されたため、ソースコードのコンパイルよりも簡単になりました。rpm コマンドを使用してアップグレードできます。

yum コマンドを使用して openssh をアンインストールします。

[root@localhost ~]# yum remove openssh openssh-clients openssh-server

image

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

image

image

新しい openssh のインストールが完了したら、sshd を再起動し、起動時に自動的に開始するように設定します。

image

sshd サービスは正常に起動しましたが、1 つのエラーメッセージが表示されます。openssh9.9 バージョンはデフォルトで dsa を無効にしています。

/sbin/restorecon: lstat(/etc/ssh/ssh_host_dsa_key.pub) failed: No such...

image

設定ファイルを変更して dsa_key の読み込みを無効にします。

image

変更後、設定を再読み込みして sshd サービスを再起動すると、エラーメッセージが消えます。

image

openssh のアップグレードが完了しました。

image

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。