Назад | Перейти на главную страницу

Локаль POSIX, когда я использую SSH с командной строкой

Когда я подключаюсь по SSH к серверу Arch Linux и включаю командную строку, я получаю локаль POSIX:

laptop.lan$ ssh server.lan locale
LANG=
LC_CTYPE="POSIX"
LC_NUMERIC="POSIX"
LC_TIME="POSIX"
LC_COLLATE="POSIX"
LC_MONETARY="POSIX"
LC_MESSAGES="POSIX"
LC_PAPER="POSIX"
LC_NAME="POSIX"
LC_ADDRESS="POSIX"
LC_TELEPHONE="POSIX"
LC_MEASUREMENT="POSIX"
LC_IDENTIFICATION="POSIX"
LC_ALL=
laptop.lan$

Насколько я могу судить, локаль на сервере настроена правильно. /etc/locale.conf выглядит так:

LANG=en_US.UTF-8

И, когда я обычно использую SSH, моя локаль в порядке:

laptop.lan$ ssh server.lan
server.lan$ locale
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
server.lan$

Что здесь происходит, и как сделать так, чтобы одноразовые команды тоже использовали мой предпочтительный языковой стандарт?

Думаю, здесь применяются некоторые настройки по умолчанию, я не уверен насчет версии, но мои первые мысли ниже

Переслать локаль

SendEnv LANG LC_*

Или

вы можете изменить конфигурацию сервера, отредактировав / etc / ssh / sshd_config на удаленном компьютере:

Принять языковой стандарт

AcceptEnv LANG LC_*

Или

Вы можете использовать файл конфигурации ssh, передать свою локаль в ~ / .ssh / config и использовать

ssh -F ~/.ssh/config your_user@your_host

Или

используйте способ ниже для встроенных изменений

LC_TIME="en_US.UTF-8" ssh usernae@yourserver

Я только что заметил, что проблема возникает, когда у меня fish (рыбий панцирь) установлен по умолчанию (chsh). Когда я снова сменил оболочку на bash, языковой стандарт работает должным образом.

Так:

chsh /bin/bash