lowply.github.io/blog

Terminal.appでSSHするとlocaleを英語にできない

2013/02/01 追記: 結局 ssh_config を修正。

コンソールメッセージが日本語なのは嫌じゃないですか。でlocaleの設定変えようと思って

$ cat /etc/sysconfig/i18n
LANG="en_US.UTF-8"

こんな感じにしても、次回sshすると

$ echo $LANG
ja_JP.UTF-8
$ locale | grep LC_CTYPE
LC_CTYPE="ja_JP.UTF-8"

とか言われてイラッとする場合。

調べてみると[計算機] Lion からの ssh ログイン先で locale がどうのこうの、といわれる。

どうやら Lion から ssh をするときに LC_* 環境変数を送っているのが問題らしい。

なるほど手元の10.8.2でも確かに /etc/ssh_config に

SendEnv LANG LC_*

という記述があった。ただ、これ編集したくないなあ。。。と思ってたら、Terminal.appにそれを制御する設定を見つけた。

この「起動時にロケール環境変数を設定」をオフにして、Terminal.appを再起動すればOK。

2013/02/01 追記:これを行うことで、Terminalがローカル環境の日本語ファイル名を正しく表示してくれないことがわかったので、結局 /etc/ssh_config を修正した。~/.ssh/configでSendEnvをOverrideできないか調べてみたけど、UnSendEnvとか各所から提案されつつも実現していないらしい。

といってもOS Xの言語を英語にしている人には関係ないです。

ココにそれっぽいことは書いてあったのは見つけた。→ Beginning OS X Lion/インフラ整備編