SSH 连接上语言环境设置不正确

SSH 连接上语言环境设置不正确

我有一台安装了多个语言环境的 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 中强制设置了语言环境...

答案1

在 ~/.profile 中指定用户首选的区域设置配置是否适合您的需要?

此外,为了避免给您带来烦恼,请停止从客户端转发区域设置(/etc/ssh/ssh_config,注释掉 SendEnv LANG...)并停止在服务器上接受(/etc/ssh/sshd_config)。

或者,如果您愿意,您可以设置一个 ~/.ssh/environment 文件,其中包含您想要的选项。您必须在服务器的 /etc/ssh/sshd_config 文件中启用 PermitUserEnvironment。

答案2

好的,我明白了。有人在 中硬编码了LC_ALLLANG变量/etc/profile,所以其他一切都被忽略了。删除这些变量后,语言环境现在根据 ssh 传输的环境进行设置。

答案3

另请检查此文件:

/etc/default/locale

如果你把它清空那么它也可能会有帮助。

接下来已经提到:

/etc/profile
~/.profile
~/.bashrc

每个文件可能包含一些

LANG
LANGUAGE
LC_*

答案4

在我使用 ssh 登录时,通常的默认语言环境或环境变量设置似乎都不起作用。这是因为我在 sshd 配置中禁用了 PAM 会话控制。

确保已设置

UsePAM yes 

在您的/etc/ssh/sshd_config文件中,至少这对我有用。

相关内容