MacからLinuxサーバに接続するとLC_CTYPE: cannot change locale のwarningがでる対応

MacからLinuxサーバにiTerm2、Terminal.appでSSHでつなぐと下記のwarningがでてくる

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

入ったサーバのlocaleを見ると

$ locale
LANG=ja_JP.utf8
LC_CTYPE="UTF-8"
LC_NUMERIC="ja_JP.utf8"
LC_TIME="ja_JP.utf8"
LC_COLLATE="ja_JP.utf8"
LC_MONETARY="ja_JP.utf8"
LC_MESSAGES="ja_JP.utf8"
LC_PAPER="ja_JP.utf8"
LC_NAME="ja_JP.utf8"
LC_ADDRESS="ja_JP.utf8"
LC_TELEPHONE="ja_JP.utf8"
LC_MEASUREMENT="ja_JP.utf8"
LC_IDENTIFICATION="ja_JP.utf8"
LC_ALL=

のようになってて、どうやら UTF-8がおかしい

原因はMacのTerminal.appとiTerm2の設定で

> set locale variables automatically

というのにチェックが入ってるとSSHで接続したサーバにMacのlocaleの設定値を送ってしまうらしい。
デフォルトチェックがONなので、これをOFFにして外してあげて、ターミナルを立ち上げなおして、SSHしてみましょう。

そうすればちゃんとwarningなしで繋がります。

しかし、ターミナルでの日本語が文字化けするので、.bash_profileとか.zshrcに下記を追加しましょう。

$ vi ~/.bash_profile

===
export LC_CTYPE=ja_JP.UTF8
===

なんか1周回ってめんどくさくなってますね。