sshd nie ustawia ustawień regionalnych

0

Edytuj: Powinienem był wspomnieć w moim pierwotnym pytaniu, że korzystam z klienta SSH MacPorts, jak się okazało, były dwie główne przyczyny. Zobacz moją własną odpowiedź poniżej.

Gdy włączam SSH do mojego komputera OSX, nie ustawia ono poprawnie ustawień regionalnych:

LANG=
LC_COLLATE="C"
LC_CTYPE="C"
LC_MESSAGES="C"
LC_MONETARY="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_ALL=

Powinien to być język lokalny UTF-8. To powinno wyglądać tak:

LANG="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_CTYPE="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_ALL=

Używam OSX 10.11.6 (El Capitan) i uruchomiłem serwer SSH w Preferencjach systemowych.

Używam kit jako klienta na moim komputerze z systemem Windows. Gdy używam tej samej konfiguracji kit do łączenia się z serwerem Linux, informacje o ustawieniach regionalnych są w porządku.

Kiedy uruchamiam lokalny terminal na maszynie OSX, ustawienia regionalne są w porządku. Jeśli mam wtedy ssh localhostten sam problem: nie ustawiono żadnych ustawień narodowych.

Wygląda na to, że mój serwer SSX OSX ignoruje lub odrzuca informacje o lokalizacji od klienta. Mam następujące w moim (niezmodyfikowanym) /etc/ssh/sshd_config:

AcceptEnv LANG LC_*

O ile mi wiadomo, to wszystko, co jest wymagane.

Moja konfiguracja kitu wysyła TERM=xterm-256color, która jest honorowana; to tylko informacje o lokalizacji, które nie działają, i powtarzam, zdarza się to, gdy pochodzę ssh localhostz OSX do siebie, więc nie sądzę, żeby tu chodziło o kit.

Nie zaakceptuję odpowiedzi, które sugerują ustawienie lokalizacji w moim .profile; jest tu wiele odpowiedzi sugerujących, że to hack, a nie rozwiązanie.

Jim Stewart
źródło

Odpowiedzi:

1

Okazuje się, że były tu dwa problemy:

Po pierwsze, PuTTY nie wysyłał żadnych informacji o lokalizacji. Najwyraźniej serwery Linux konfigurowały ustawienia regionalne automatycznie lub w oparciu o TERMlub coś. Naprawiłem PuTTY, konfigurując zmienne środowiskowe do wysłania:

Konfiguracja regionalna PuTTY

Po drugie, używam MacPorts (zaktualizowane pytanie, ponieważ nie było go w oryginale), a MacPorts ssh nie wysyła zmiennych regionalnych . Nie mogę sobie wyobrazić, dlaczego MacPorts konfiguruje SSH w ten sposób, ale musiałem dodać następujące elementy /opt/local/etc/ssh/ssh_config:

Host *
  SendEnv LANG LC_*

To naprawdę powinno być domyślną konfiguracją MacPorts; jest to domyślne ustawienie w każdym standardowym systemie Linux, a nawet domyślne w SSH OSH. Dowiedziałem się, że MacPorts było częścią problemu, gdy SSH z Linuksa na OSX ustawił ustawienia regionalne.

Mam złożył bilet z DarwinPorts sugerujących domyślny zostać zmienione.

Jim Stewart
źródło