2024-01-11
格安レンタルサーバーCORESERVERのv1-MINIプランを使用中、git pushやrsync -e sshなど内部でsshを呼ぶようなコマンドを打ったら、ある日突然
git push -u origin master /usr/bin/ssh: symbol lookup error: /lib64/libk5crypto.so.3: undefined symbol: EVP_KDF_ctrl, version OPENSSL_1_1_1b fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists.
などと言われ、エラーで終了するようになってしまった。え?という感じで、試しにシステムのsshやsshdを単独で叩いてみたら、同じようにエラーで起動できなかった。
/usr/bin/ssh /usr/bin/ssh: symbol lookup error: /lib64/libk5crypto.so.3: undefined symbol: EVP_KDF_ctrl, version OPENSSL_1_1_1b /usr/sbin/sshd /usr/sbin/sshd: symbol lookup error: /lib64/libk5crypto.so.3: undefined symbol: EVP_KDF_ctrl, version OPENSSL_1_1_1b
リンク先のOpenSSLライブラリをうまく見れていないのだろうが、レンタルサーバなので手が出せない。
sshコマンドさえちゃんと動けばいいわけなので、以前、自力で最新gccを自分のHOMEに導入したように、
レンタルサーバーCORESERVERにgcc/g++8.3をソースからインストールして使う
sshコマンドもソースコードからコンパイルし自分のHOME/.localに入れて実行してしまえばよいのではないか。
結論から言うと、無事解決しました!以下手順です。
OpenSSHソースコード取得・展開
wget -c https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-8.0p1.tar.gz tar xvfzp openssh-8.0p1.tar.gz
インストール先に自分のHOME/.localを指定しconfigure
cd openssh-8.0p1/ ./configure --prefix=/virtual/hogeuser/.local --without-openssl-header-check
--without-openssl-header-checkをつけないと整合性エラーが出たのでつけた。
ビルド・インストール
make make install
.local/binにsshやscp,ssh-keygen, .local/sbinにsshdが無事インストールされた!
エラーが出ないで起動可能かテストする
バージョンチェックがちゃんと出ればすべてOK
/virtual/hogeuser/.local/bin/ssh -V OpenSSH_8.0p1, OpenSSL 1.1.1s 1 Nov 2022
.local/binを最優先パスとして環境変数に通す
.bash_aliasesなどに、以下のように記述し.local/binを先頭にして最優先PATHにする
if [ -d $HOME/.local ]; then export PATH=$HOME/.local/bin:$PATH fi
一旦ログアウト後、再度ログインしてsshのパスを確認する
.bash_aliasesの設定が効いているかをチェックする。
which ssh ~/.local/bin/ssh
上記のように表示されれば、単純に「ssh」とした場合自力コンパイルしたこのsshコマンドが呼ばれ、エラーが解決!さきのgithubへのリモートcommitも無事成功。
git push -u origin master Enumerating objects: 4, done. Counting objects: 100% (4/4), done. Delta compression using up to 128 threads Compressing objects: 100% (3/3), done. Writing objects: 100% (3/3), 1.02 KiB | 1.02 MiB/s, done. Total 3 (delta 1), reused 0 (delta 0), pack-reused 0 remote: Resolving deltas: 100% (1/1), completed with 1 local object. To github.com:servernote/samples.git a8523d2..3d481b7 master -> master
※本記事内容の無断転載を禁じます。
ご連絡は以下アドレスまでお願いします★
Intel Macbook2020にBootCampで入れたWindows11 Pro 23H2のBluetoothを復活させる
Windowsのデスクトップ画面をそのまま配信するための下準備
WindowsでGPUの状態を確認するには(ASUS系監視ソフトの自動起動を停止する)
CORESERVER v1プランからさくらインターネットスタンダートプランへ引っ越しメモ
さくらインターネットでPython MecabをCGIから使う
さくらインターネットのPHPでAnalytics-G4 APIを使う
インクルードパスの調べ方
【Git】特定ファイルを除外する.gitignore
【Ubuntu/Debian】NVIDIA関係のドライバを自動アップデートさせない
【Apache】サーバーに同時接続可能なクライアント数を調整する
Windows版Google Driveが使用中と言われアンインストールできない場合
【Windows10】リモートデスクトップ間のコピー&ペーストができなくなった場合の対処法
Windows11+WSL2でUbuntuを使う【2】ブリッジ接続+固定IPの設定
【Linux】iconv/libiconvをソースコードからインストール
Googleスプレッドシートを編集したら自動で更新日時を入れる
【C/C++】小数点以下の切り捨て・切り上げ・四捨五入
【ひかり電話+VoIPアダプタ】LANしか通ってない環境でアナログ電話とFAXを使う
Windows11でMacのキーボードを使うには