我当地/etc/ssh/ssh_config
有
SendEnv LANG LC_*
服务器端/etc/ssh/ssh_config
有
AcceptEnv LANG LC_*
然而,当我通过 SSH 连接到我的 Debian 服务器时,我注意到$LC_*
family 被传递到服务器端,但$LANG
没有通过;服务器仍然en_US.UTF-8
在那里使用。我怎样才能让它尊重我的客户端$LANG
?
以防万一,我正在使用 Debian 11 (Bullseye)。
答案1
这可能是 Debian 特定的。需要运行dpkg-reconfigure locales
并选择没有任何作为默认区域设置(我之前en_US.UTF-8
在那里设置)。从Debian 维基:
如果您选择的默认区域设置不是没有任何上面,它将位于
/etc/default/locale
并覆盖LANG
ssh 提供的变量。
(我认为将其称为“默认”区域设置具有误导性,因为它会覆盖您的显式选择,而不是像后备选择一样。更像是“强制区域设置”。)