背景
普段macを使用していますが,先日WindowsのBash on Ubuntu on Windowsからサーバにsshすることがありました.
その際,以下のような警告が出てきたので対処法を書きます.
perl: warning: Setting locale failed. perl: warning: Please check that your locale settings: LANGUAGE = (unset), LC_ALL = (unset), LANG = "C.UTF-8" are supported and installed on your system. perl: warning: Falling back to the standard locale ("C").
原因
ローカル(Windows)のlocale情報がSSHで送られていた.
SSHにはSendEnvという環境変数を接続先サーバに送信する機能があります.
また,SSHには接続先別の設定を記述する~/.ssh/config
と,デフォルト(共通)の設定を記述する/etc/ssh/ssh_config
があります.
今回locale情報が送られてしまったのは後者の設定ファイルにSendEnv LANG LC_*
が設定されていた為です.
解決法
/etc/ssh/ssh_config
を管理者権限で開き,SendEnv LANG LC_*
の部分をコメントアウトすれば解決します.
- SendEnv LANG LC_* +# SendEnv LANG LC_*