SSHでサーバに繋いで"perl: warning: Setting locale failed."が出てきたときの対処法

背景

普段macを使用していますが,先日WindowsBash 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_*