У меня есть сервер debian с несколькими установленными языками: de_DE, en_GB и en_US. Я хочу иметь возможность войти в систему через ssh и получить соответствующий языковой стандарт (в моем случае - en_US, другой для кого-то другого). Я запустил dpkg-reconfigure locales и выбрал None в качестве языкового стандарта по умолчанию, как упоминалось здесь: http://wiki.debian.org/Locale. Теперь, когда я вхожу в систему через ssh, я все еще получаю локаль de_DE.
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
Я проверил с помощью ssh -v, клиент ssh действительно отправляет переменную LANG
debug1: Sending environment.
debug1: Sending env LANG = en_US.UTF-8
Как языковой стандарт все еще устанавливается на DE и как я могу отключить это поведение?
Редактировать: Теперь это работает. Кто-то принудительно установил локаль в / etc / profile ...
Соответствует ли указание предпочтительных для пользователя конфигураций локали в ~ / .profile вашим потребностям?
Кроме того, чтобы избавить вас от раздражения, прекратите пересылку локали от вашего клиента (/ etc / ssh / ssh_config, закомментируйте SendEnv LANG ...) и прекратите прием на сервере (/ etc / ssh / sshd_config).
Или, если хотите, вы можете установить файл ~ / .ssh / environment с желаемыми параметрами. Вам нужно будет включить PermitUserEnvironment в файле / etc / ssh / sshd_config на сервере.
Хорошо, я разобрался. Кто-то жестко закодировал LC_ALL
и LANG
переменные в /etc/profile
, поэтому все остальное было просто проигнорировано. После их удаления локаль теперь устанавливается в соответствии со средой, передаваемой по ssh.
В моем случае при входе в систему с помощью ssh ни одна из обычных настроек локали по умолчанию или переменных среды не работала. Это произошло потому, что я отключил управление сеансом PAM в конфигурации sshd.
Убедитесь, что вы установили
UsePAM yes
в твоем /etc/ssh/sshd_config
файл, по крайней мере, это сработало для меня.