Debian

沒有通過 ssh 連接正確設置語言環境

  • November 19, 2020

我有一個安裝了幾個語言環境的 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 中設置語言環境…

好的,我想通了。LC_ALL有人將andLANG變數硬編碼在中/etc/profile,因此其他所有內容都被忽略了。刪除這些後,現在根據 ssh 傳輸的環境設置語言環境。

在 ~/.profile 中指定使用者首選的語言環境配置是否適合您的需要?

此外,為了避免您的煩惱,請停止從客戶端轉發語言環境(/etc/ssh/ssh_config,註釋掉 SendEnv LANG…)並停止在伺服器上接受(/etc/ssh/sshd_config)..

或者,如果您願意,可以使用所需的選項設置 ~/.ssh/environment 文件。您必須在伺服器的 /etc/ssh/sshd_config 文件上啟用 PermitUserEnvironment。

引用自:https://serverfault.com/questions/466316