状況
今朝 macOS(*) の update が来たので Version 10.15.7 に update しました。
問題なく update されたのですが、server に SSH で繋いだら、次のような error が出るように🙀(Script 1)。
(*) 英語版(locale は C 設定)に設定してあります。このため local machine と繋いだ先の server (POSIX 設定)とのでの locale の設定が合わないことになり、このような warning が出るようです。そこで、今回は local の設定ではなくて相手(server)を優先する解決方法です。
Script 1: perl warns something…
Last login: Wed Sep 30 00:00:00 2020 from 1234.ggcs.io perl: warning: Setting locale failed. perl: warning: Please check that your locale settings: LANGUAGE = (unset), LC_ALL = (unset), LC_CTYPE = "UTF-8", LANG = (unset) are supported and installed on your system. perl: warning: Falling back to the standard locale ("C"). [ggcs@abc ~]$
解決法
自分の Mac の中に /etc/ssh/ssh_config という server SSH 接続の設定ファイルがあるので、これを適当なエディタで開いて、SendEnv LANG LC_* という1行(たぶん、ファイルの一番下かその近辺にあるはず)を comment out します(Script 2)。
Script 2: Comment out SendEnv LANG LC_*
BEFORE Host * SendEnv LANG LC_* <- This is the culprit! AFTER Host * # SendEnv LANG LC_*
macOS が大きめの update を行う際は`ssh_config`が default に書き直されてしまうので今後も同じことが起こります。忘れないように自分用メモ ✍️
⚠️ WARNIG ⚠️
- 似た名前で紛らわしいファイル、 sshd_config がありますが、こちらは触っちゃダメです。
- ssh_config の path は人によって違うかもしれません。例示した path になかった場合は適当に近所を捜索してください。
- このファイルは保護されているので、terminal から vi などで開くときは sudo する必要があります(でないと編集結果が保存できない)。
Enjoy!