zzz0mbie
@zzz0mbie

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

Ubuntu20.04でOpenSSL・OpenSSHをアップデートしたい

解決したいこと

Ubuntu20.04.3 で OpenSSL と OpenSSH をそれぞれ下記のバージョンにアップデートしたいです。
OpenSSL 1.1.1f → 3.0.9
OpenSSH 8.2p1 → 9.3p1

発生している問題・エラー

OpenSSHのアップデート→OpenSSLのアップデートの順で行い
「ssh -V」でバージョンを確認すると、OpenSSLがアプデ前の「1.1.1f」となってしまいます。
「3.0.9」と認識されるようにしたいです。

$ ssh -V
OpenSSH_9.3p1, OpenSSL 1.1.1f  31 Mar 2020

「openssl version」だと3.0.9と表示されます。

$ openssl version
OpenSSL 3.0.9 30 May 2023 (Library: OpenSSL 3.0.9 30 May 2023)

OpenSSHのアップデート方法

OpenSSHは下記のコマンドでアップデートしました。

$ cd /usr/local/src/
$ sudo wget http://mirror.exonetric.net/pub/OpenBSD/OpenSSH/portable/openssh-9.3p1.tar.gz
$ sudo tar -zxvf openssh-9.3p1.tar.gz
$ cd openssh-9.3p1
$ sudo ./configure
$ sudo make
$ sudo make install
$ cd /usr/bin/
$ sudo mv ssh ssh_old
$ sudo ln -s /usr/local/bin/ssh ssh
$ ssh -V
OpenSSH_9.3p1, OpenSSL 1.1.1f  31 Mar 2020

OpenSSLのアップデート方法

OpenSSLは下記のコマンドでアップデートしました。

cd /usr/local/src/
sudo wget https://www.openssl.org/source/openssl-3.0.9.tar.gz
sudo tar xvf openssl-3.0.9.tar.gz
cd openssl-3.0.9/
sudo ./config
sudo make
sudo make install
sudo ldconfig

「openssl version」を実行したら、下記のエラーになりました。

openssl: error while loading shared libraries: libssl.so.3: cannot open shared object file: No such file or directory

「libssl.so.3」へのパスを通し、上記エラーは解消しました。

$ sudo find /usr -name "libssl.so.3"
/usr/local/lib64/libssl.so.3
/usr/local/src/openssl-3.0.9/libssl.so.3
# echo "/usr/local/lib64" > /etc/ld.so.conf.d/lib64.conf

試したこと

アップデート順を変えて、OpenSSLのアップデート→OpenSSHのアップデートを試しましたが
OpenSSHの「./configure」コマンドを実行したときに、下記のメッセージが表示されエラーとなりました。

configure: error: Your OpenSSL headers do not match your
        library. Check config.log for details.
        If you are sure your installation is consistent, you can disable the check
        by running "./configure --without-openssl-header-check".
        Also see contrib/findssl.sh for help identifying header/library mismatches.

contrib/findssl.shスクリプトを実行したところ、下記のように表示されました。

Searching for OpenSSL header files.
OPENSSL_VERSION_NUMBEROPENSSL_VERSION_NUMBER /usr/local/src/openssl-3.0.9/include/openssl/opensslv.h
OPENSSL_VERSION_NUMBEROPENSSL_VERSION_NUMBER /usr/local/include/openssl/opensslv.h
OPENSSL_VERSION_NUMBER /usr/include/openssl/opensslv.h

Searching for OpenSSL shared library files.
0x100020efL /snap/core18/2751/usr/lib/x86_64-linux-gnu/libcrypto.so.1.0.0
0x100020efL /snap/core18/2785/usr/lib/x86_64-linux-gnu/libcrypto.so.1.0.0

Searching for OpenSSL static library files.

OpenSSL shared library fileが1.0.0のままでした。

1

1Answer

openssh が opnenssl をリンクするので順番としてはopensslが先ですが、

「libssl.so.3」へのパスを通し、上記エラーは解消しました。

ということですから、ヘッダーファイルも /usr/local/include にインストールされていると思います。

opensshをconfigureする際にopensslのヘッダーの場所を指定すれば良さそうな気がします。

2Like

Comments

  1. @zzz0mbie

    Questioner

    ご回答ありがとうございます。
    ヘッダーの場所を指定してもうまくいかなかったのですが、opensslの場所を指定したところうまくいきました!

    $ sudo ./configure --with-ssl-dir=/usr/local/ssl
    $ ssh -V
    OpenSSH_9.3p1, OpenSSL 3.0.9 30 May 2023
    

Your answer might help someone💌