2023-01-12



格安レンタルサーバー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
※本記事内容の無断転載を禁じます。
ご連絡は以下アドレスまでお願いします★
☆ServerNote.NETショッピング↓
ShoppingNote / Amazon.co.jp
☆お仲間ブログ↓
一人社長の不動産業務日誌
【Swift UI】Cannot assign value of type Bindingエラーの対処法
【Swift UI】Extra argument in callの対処法
【Swift UI】navigationBarBackButtonHiddenはしたいがスワイプ操作で戻るは有効にしたい場合
【Swift UI】GeometryReader内のViewの位置が左にずれてしまう場合
XcodeでSwift UIアプリ実行時EXC_BAD_ACCESSエラーが出た場合
【Swift UI】右から登場し右へ消えるアニメーションボタンビュー
【Xcode】無償デベロッパで実機テストするまでのメモ
【Swift UI】アニメーションとトランジションの種類
【Swift UI】Hello Worldをフェードイン・アウトさせる
進研ゼミチャレンジタッチをAndroid端末化する
Googleスプレッドシートを編集したら自動で更新日時を入れる
Windows版Google Driveが使用中と言われアンインストールできない場合
Androidホームで左にスワイプすると出てくるニュース共を一切表示させない方法
【C/C++】小数点以下の切り捨て・切り上げ・四捨五入
【Javascript】JSON配列内にある特定要素の取得法【Node.js】
【Apache】サーバーに同時接続可能なクライアント数を調整する
Googleファミリーリンクで子供の端末の現在地がエラーで取得できない場合
LinuxからWindowsの共有フォルダをマウントする