Debian – locale not getting set correctly over ssh connection

debianlocalization

I have a debian server with several locales installed, de_DE, en_GB and en_US. I want to be able to login over ssh and get the locale set accordingly (to en_US in my case, different for someone else)
I ran dpkg-reconfigure locales, and selected None as the default locale as mentioned here: http://wiki.debian.org/Locale.
Now, when I login over ssh I still get the de_DE locale.

LANG=de_DE.utf8
LANGUAGE=de_DE.utf8
LC_CTYPE="de_DE.utf8"
LC_NUMERIC="de_DE.utf8"
LC_TIME="de_DE.utf8"
LC_COLLATE="de_DE.utf8"
LC_MONETARY="de_DE.utf8"
LC_MESSAGES="de_DE.utf8"
LC_PAPER="de_DE.utf8"
LC_NAME="de_DE.utf8"
LC_ADDRESS="de_DE.utf8"
LC_TELEPHONE="de_DE.utf8"
LC_MEASUREMENT="de_DE.utf8"
LC_IDENTIFICATION="de_DE.utf8"
LC_ALL=de_DE.utf8

I checked with ssh -v, the ssh client is indeed sending the LANG variable

debug1: Sending environment.
debug1: Sending env LANG = en_US.UTF-8

How is the locale still getting set to DE and how can I disable that behavior?

Edit: It works now. Someone forcibly set the locale in /etc/profile…

Best Answer

Is specifying the user-preferred locale configurations in ~/.profile appropriate for your needs?

Also, to save you the annoyance, stop forwarding locale from your client (/etc/ssh/ssh_config, comment out SendEnv LANG...) and stop accepting on the server (/etc/ssh/sshd_config)..

Or, if you prefer, you can set a ~/.ssh/environment file with the options you want. You'll have to enable PermitUserEnvironment on the server's /etc/ssh/sshd_config file.