ssh 時の locale エラー対処方法

自分で構築した計算機やスーパーコンピューターにリモート接続するときに、以下のようなエラーが出るときがあると思います。

-bash: warning: setlocale: LC_CTYPE: cannot change locale (UTF-8): No such file or directory

また、サーバー上で C/C++ で書いたプログラムを実行すると

perl: warning: Setting locale failed.
perl: warning: Setting locale failed.perl: warning: Please check that your locale settings:
LANGUAGE = (unset),
LC_ALL = (unset),
LC_CTYPE = “UTF-8”,
LANG = “en_US.UTF-8”
are supported and installed on your system.
perl: warning: Falling back to the standard locale (“C”).
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = (unset),
LC_ALL = (unset),
LC_CTYPE = “UTF-8”,
LANG = “en_US.UTF-8”
are supported and installed on your system.
perl: warning: Falling back to the standard locale (“C”).

のようなエラーメッセージが表示されることもあると思います。

クリティカルではないけれど、とても目障りなエラーです。このエラーの対処方法は非常に簡単です。

環境

Macbook pro 13inch, 2015 Early

対処方法

ssh_config を修正します。

sudo vi /etc/ssh/ssh_config

で、SendEnv LANG LC_* と書いてある行をコメントアウトします(行の先頭に # を書き足すだけです)。

これで、解決します。

このエラーは、MacOS や Linux から ssh 接続する人に起きるらしく、windows では発生しないそうです。
接続元の環境変数の設定を接続先に送ることが原因なので、SendEnv LANG LC_* をコメントアウトすることにより送信されなくなります。

参考

ユーザのロケール設定方法

関連記事

One comment

コメントを残す(投稿者名のみ必須)