dnfでいろいろインストールしていたらSSHが接続できなくなった

Last update: 2024/12/21


環境

症状

これまでWindows11のノートPCからAlma Linux9にSSHで接続できていたが、Alma Linux9にいろいろインストールしていたら以下のようにエラーが出てアクセスできなくなった。

Putty Fatal Error:Nework error: Connection refused

原因

mdadmをインストールした際にOpneSSLがversion upされてしまい、OpenSSHのversionと不整合が生じた。

解決方法

サーバー側PCにSSHではなく直接ログインし、以下の通りdnf updateを実行したらログインできるようになった。今回はまとめてupdateしたが、OpenSSHだけupdateしても解決すると思われる。

$ sudo dnf -y update

メモ:発生時の調査

ネットワークが切れたかと思ってクライアント側Windows PCのPower Shellから、サーバー側Linux PCのIPアドレスにpingを投げてみたが、応答は返ってきた。

> ping xx.xxx.xxx.xx

xx.xxx.xxx.xx に ping を送信しています 32 バイトのデータ:
xx.xxx.xxx.xx からの応答: バイト数 =32 時間 =1ms TTL=63
xx.xxx.xxx.xx からの応答: バイト数 =32 時間 =2ms TTL=63
xx.xxx.xxx.xx からの応答: バイト数 =32 時間 =2ms TTL=63
xx.xxx.xxx.xx からの応答: バイト数 =32 時間 =2ms TTL=63
        
xx.xxx.xxx.xx の ping 統計:
    パケット数: 送信 = 4、受信 = 4、損失 = 0 (0% の損失)、
ラウンド トリップの概算時間 (ミリ秒):
   最小 = 1ms、最大 = 2ms、平均 = 1ms

サーバー側PCは遠隔地にあるわけではなく自宅にあって直接触れるので、ここからはサーバー側PCで状態を確認することにした。まず、sshdのstatusを確認すると、Activeになっていない。

$ systemctl status sshd
        ● sshd.service - OpenSSH server daemon
             Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; preset: enabled)
             Active: activating (auto-restart) (Result: exit-code) since Sat 2024-12-21 04:06:32 JST; 39s ago
               Docs: man:sshd(8)
                     man:sshd_config(5)
            Process: 1837 ExecStart=/usr/sbin/sshd -D $OPTIONS (code=exited, status=255/EXCEPTION)
           Main PID: 1837 (code=exited, status=255/EXCEPTION)
                CPU: 3ms

sshコマンドを実行してみたところ、以下のように表示された

$ ssh
        OpenSSL version mismatch. Built against 30000070, you have 30200020

過去のインストール履歴を見たところ、mdadmをインストールされたときにopensslがupdateされてしまったらしい。

$ rpm -qa --last | less
mdadm-4.3-3.el9.x86_64                        Sun Dec 15 00:19:50 2024
openssl-3.2.2-6.el9_5.x86_64                  Sun Dec 15 00:15:30 2024
lvm2-libs-2.03.24-2.el9.x86_64                Sun Dec 15 00:15:30 2024
lvm2-2.03.24-2.el9.x86_64                     Sun Dec 15 00:15:30 2024
cryptsetup-2.7.2-3.el9_5.x86_64               Sun Dec 15 00:15:30 2024
openssl-libs-3.2.2-6.el9_5.x86_64             Sun Dec 15 00:15:29 2024
device-mapper-libs-1.02.198-2.el9.x86_64      Sun Dec 15 00:15:29 2024
device-mapper-event-libs-1.02.198-2.el9.x86_64 Sun Dec 15 00:15:29 2024
device-mapper-event-1.02.198-2.el9.x86_64     Sun Dec 15 00:15:29 2024
device-mapper-1.02.198-2.el9.x86_64           Sun Dec 15 00:15:29 2024
…(以下略)…

OpenSSHだけ最新のversionにupdateすれば動きそうだったが、ほかのパッケージもついでにupdateするために以下を実行した。

$ sudo dnf -y update

update完了後、再びsshdの状態を確認したらactiveになっており、クライアント側のWindows PCからもSSh接続できるようになった。

$ systemctl status sshd
        ● sshd.service - OpenSSH server daemon
        Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; preset: enabled)
        Active: active (running) since Sat 2024-12-21 05:10:23 JST; 8min ago
          Docs: man:sshd(8)
                man:sshd_config(5)
      Main PID: 24052 (sshd)
         Tasks: 1 (limit: 98411)
        Memory: 1.4M
           CPU: 9ms
        CGroup: /system.slice/sshd.service
                └─24052 "sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups"
   
   Dec 21 05:10:23 localhost.localdomain systemd[1]: Starting OpenSSH server daemon...
   Dec 21 05:10:23 localhost.localdomain sshd[24052]: Server listening on 0.0.0.0 port 22.
   Dec 21 05:10:23 localhost.localdomain sshd[24052]: Server listening on :: port 22.
   Dec 21 05:10:23 localhost.localdomain systemd[1]: Started OpenSSH server daemon.

参考文献

linux - SSHで接続しようとすると connection refused と表示される - スタック・オーバーフロー

dnf(yum) updateをサボったせいでサーバに接続できなくなった


Copyright (c) 2024 kd