IT技術に関する情報掲載サイト

プログラミングに関することを掲載します。

Macでsshをしたときに"error: buffer_get_ret: trying to get more bytes 3 than in buffer 0"とでたときの対処法

Macsshをしたときに"error: buffer_get_ret: trying to get more bytes 3 than in buffer 0"とでたときの対処法をご紹介

ターミナルを使って、sshで遠隔でサーバにログインしようとした際に、パスワードはあっているのに、エラーとなってログイン出来ないときがありました。エラー内容は、

error: buffer_get_ret: trying to get more bytes 3 than in buffer 

です。

色々ネットで調べてみると、どうも、最初にログインする際に作成される公開鍵の作成に失敗してしまったようです。

直し方としては、

~/.sshにあるknown_hostsに対象サーバの公開鍵が記述されているので、一旦その行を削除し、再度sshでログインできれば、ログインできます。

エラー内容から、エラーの原因がわからず、知らないとできないエラーだと思いますので、知っとくといいかもしれません。

 

Lets Encryptで証明書更新時にError: couldn't get currently installed versionと出たときの対応方法

 

Lets Encryptで証明書更新時にError: couldn't get currently installed versionと出たときの対応方法は、2パターンある

 

  1. 既存で登録されているcertbot-autoのバージョンが合わないので、入れ直し。certbot-auto実行時にこちらのディレクトリが再生成されるようなので削除して再実行します。

    # rm -r /opt/eff.org/certbot/

    # ./certbot-auto --debug -v

    # /usr/bin/certbot-auto renew --force-renew

     

  2. ”/opt/eff.org/certbot/venv/bin”直下にあるpipを使って以下のようにLet’s Encryptのモジュールを更新する方法

    //環境変数を削除

    # unset PYTHON_INSTALL_LAYOUT

    //Let's Encryptモジュールを更新

    # /opt/eff.org/certbot/venv/bin/pip install --upgrade certbot

1がだめだったら、2をやってみるとうまくいくかもと思います。

両方ともそれぞれが終わったら、Apacheの再起動を忘れずに。

基本cronで自動更新できるようにしたほうがらくだね、

EC-CUBE3で税抜き価格を表示する方法は?

EC-CUBEのバージョン3でデフォルトは、税込価格の表示になっておりますが、どうしても、商品一覧、商品詳細ページで、税抜価格を表示させたい場合は、テンプレートの修正が必要となります。

 

■対象テンプレート

  1. 商品一覧
    /src/Eccube/Resource/template/default/Product/list.twig
  2. 商品詳細
    /src/Eccube/Resource/template/default/Product/detail.twig

■変更内容

以下の関数のIncTaxを削除

<変更前>

{{ Product.getPrice01IncTaxMax|price }}

{{ Product.getPrice01IncTaxMin|price }}

{{ Product.getPrice02IncTaxMax|price }}

{{ Product.getPrice02IncTaxMin|price }}

  

<変更後>

{{ Product.getPrice01Max|price }}

{{ Product.getPrice01Min|price }}

{{ Product.getPrice02Max|price }}

{{ Product.getPrice02Min|price }}

 

こんな感じで簡単に変更ができますので、試して見て下さい。

 

MariaDBでのユーザアカウントの新規追加方法

Mysqlから派生したMariaDBでユーザアカウントを追加しようとしたら、なぜか‥

Mysqlでは、できた方法ができなかったので、忘れないようにメモしとこう。

 

-- mysqlに接続

#mysql

-- 新しくユーザーを作成する

CREATE USER wordpress_test@localhost

-- 作成したユーザーに作成したデータベースの操作権限を付与する

GRANT ALL PRIVILEGES ON wordpress_test.* TO 'wordpress_test'@'localhost';

-- 作成したユーザーのパスワードを設定

SET PASSWORD FOR 'wordpress_test'@'localhost'=password('yourpasswod');

-- 設定を反映する

FLUSH PRIVILEGES;

 

基本的な流れは、一緒だけど、なぜか、パスワードの設定のところだけどうまくいかなかったので、別SQLでパスワードを設定しました。

 

EC-CUBE3で管理画面へのログインパスワードを忘れたときの対応方法

EC-CUBEを使っているときに、久しぶりに管理画面に入ろうとして、ログイン情報を忘れてしまったことはありませんか。

EC-CUBEは、セキュリティのためか、管理画面にパスワードの再発行の機能はありません。だからといって、データベースに直接アクセスして、パスワードを変更しようとしても、ハッシュ化されており、なんのパスワードかしることができません。

そういうときは、以下のファイルを編集すると、一時的にパスワードなしでログインすることができます。

 

<対象ファイル>vendor/symfony/security/Core/Authentication/Provider/UserAuthenticationProvider.php

 

<編集箇所>

86行目あたりをコメントアウト

try {
$this->userChecker->checkPreAuth($user);
// $this->checkAuthentication($user, $token);
$this->userChecker->checkPostAuth($user);
} catch (BadCredentialsException $e) {
if ($this->hideUserNotFoundExceptions) {
throw new BadCredentialsException('Bad credentials.', 0, $e);
}
throw $e;
}

 

ログインする際に、IDは、既存のものを使い、パスワードは、任意で入力してもらうとログインできます。ログイン後、すぐにパスワードを変更して、上記でコメントアウトして部分をもとに戻すことを忘れずに行って下さい。