Results 1 to 9 of 9

Thread: Слетает кодировка кириллицы на удалённой машине при ssh соединении

  1. #1
    Join Date
    Mar 2014
    Location
    Dnepropetrovsk
    Posts
    105

    Default Слетает кодировка кириллицы на удалённой машине при ssh соединении

    Добрый день!

    Эта проблема появилась у меня на openSUSE 42.3, которую я поставила себе несколько дней назад; на предыдущих версиях oS такого не было.
    На моей машине все буквы отображаются нормально (не считая консоли tty, но там это мне не мешает). Но на машине, на которую я захожу через ssh, это выглядит так:
    Code:
    $ ls task/SU2DATA/
    ?????????????????? ??????????
    а при попытке править строку текстового файла, содержащую кириллицу, через mcedit или vi, оно плодит куски этой строки:
    исходная строка (между "SU2DATA/" и "/TBCDGT_PHI=0.08m" стоит фраза "Магнитная масса"):
    OUTPUTPATH = ../SU2DATA/�~\агни�~Bна�~O ма�~A�~Aа/TBCDGT_PHI=0.08m/4x14x14x14/b3.02/tw/TeslaK40s-02/

    Удаляю последнюю четвёрку в подстроке "4x14x14x14", получаю:
    OUTPUTPATH = ../SU2DATA/�~\агни�~Bна�~O ма�~A�~Aа/TBCDGT_PHI=0.08m/4x14x14x1x14x14x14/b3.02/tw/TeslaK40s-02/

    Пока последнюю проблему решаю тем, что захожу туда через fish, открываю нужный файл в Kate и правлю его оттуда. Но это очень неудобно.

    Я пробовала заходить через ssh на разные машины, но везде такая же проблема. При этом, при заходе на те удалённые машины с других компьютеров всё с кодировками нормально.

    Помогите, пожалуйста, настроить это как положено.
    Заранее спасибо.

    Пробовала добавлять строки
    Host *
    SendEnv LC_*
    в ~/.ssh/config и
    SendEnv LANG LC_*
    в /etc/ssh/ssh_config, но ничего не помогло.

  2. #2
    Join Date
    Mar 2014
    Location
    Dnepropetrovsk
    Posts
    105

    Default Re: Слетает кодировка кириллицы на удалённой машине при ssh соединении

    Добрый вечер!

    Одна машина написала, что ей не нравится в моём подключении:
    Code:
    > ssh natasha@next
    Password: 
    Last login: Wed Sep  6 18:33:47 2017 from 192.168.0.179
    Have a lot of fun...
    /usr/bin/manpath: can't set the locale; make sure $LC_* and $LANG are correct
    natasha@next:~>
    Но как это исправить?

    Вывод locale на моей машине:
    Code:
    > locale
    LANG=en_US.UTF-8
    LC_CTYPE="en_US.UTF-8"
    LC_NUMERIC="en_US.UTF-8"
    LC_TIME=ce_RU.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=
    на удалённой (с ошибкой...):
    Code:
    natasha@next:~> locale
    locale: Cannot set LC_ALL to default locale: No such file or directory
    LANG=en_US.UTF-8
    LC_CTYPE="en_US.UTF-8"
    LC_NUMERIC="en_US.UTF-8"
    LC_TIME=ce_RU.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=

  3. #3
    Join Date
    Jan 2011
    Location
    Vladivostok
    Posts
    679

    Default Re: Слетает кодировка кириллицы на удалённой машине при ssh соединении

    приветствую

    с любого терминального клиента такая ерунда, xterm, konsole, текстовая коноль? и пробовали ли под другим пользователем?
    подозреваю, какие-то переменные "попортились"

  4. #4
    Join Date
    Mar 2014
    Location
    Dnepropetrovsk
    Posts
    105

    Default Re: Слетает кодировка кириллицы на удалённой машине при ssh соединении

    Здравствуйте!

    Из konsole и xterm одинаково -- с ошибкой при логине, ломаной кодировкой и размножением подстрок. Логин из-под другого пользователя не помогает.

    Из tty -- без сообщения об ошибке и без размножения подстрок. Только с прямоугольничками вместо русских букв, наверное оттого, что они у меня там и без ssh не отображаются.

  5. #5
    Join Date
    Mar 2014
    Location
    Dnepropetrovsk
    Posts
    105

    Default Re: Слетает кодировка кириллицы на удалённой машине при ssh соединении

    Только заметила -- если идти на удалённую машину из mc через Shell link, то с русскими буквами всё в порядке (mc установлен вручную из GitHub). А при обычном входе через ssh всё плохо.

  6. #6
    Join Date
    Jan 2011
    Location
    Vladivostok
    Posts
    679

    Default Re: Слетает кодировка кириллицы на удалённой машине при ssh соединении

    хм
    glibc-locale установлен?

    это по-моему лишнее:
    Пробовала добавлять строки
    Host *
    SendEnv LC_*
    в ~/.ssh/config и
    SendEnv LANG LC_*
    в /etc/ssh/ssh_config, но ничего не помогло.

  7. #7
    Join Date
    Mar 2014
    Location
    Dnepropetrovsk
    Posts
    105

    Default Re: Слетает кодировка кириллицы на удалённой машине при ssh соединении

    glibc-locale установлен?
    Да,
    Code:
    # zypper se glibc-locale
    Loading repository data...
    Reading installed packages...
    
    S | Name               | Summary                            | Type    
    --+--------------------+------------------------------------+--------
    i | glibc-locale       | Locale Data for Localized Programs | package
    i | glibc-locale-32bit | Locale Data for Localized Programs | package
    

  8. #8
    Join Date
    Mar 2014
    Location
    Dnepropetrovsk
    Posts
    105

    Default [РЕШЕНО] Re: Слетает кодировка кириллицы на удалённой машине при ssh соединении

    Добрый вечер!

    Повозившись некоторое время с другом, удалось найти решение -- на удалённую машину не стоит передавать параметр LC_TIME:
    Code:
    > cat /etc/ssh/ssh_config | grep '.'| grep -v '# '
    #       $OpenBSD: ssh_config,v 1.30 2016/02/20 23:06:23 sobrado Exp $
    #KexDHMin 1024
    Host *
        ForwardX11Trusted yes
        SendEnv LANG LC_CTYPE LC_NUMERIC LC_COLLATE LC_MONETARY LC_MESSAGES
        SendEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT LC_IDENTIFICATION
    #SendEnv LC_TIME
        SendEnv LC_ALL
    #
    Теперь всё работает как надо:
    Code:
    > ssh natasha@prime 
    Password: 
    Last login: Fri Sep  8 20:49:59 2017 from 192.168.0.179
    Have a lot of fun...
    natasha@prime:~> 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=
    natasha@prime:~> ls task/SU2DATA/
    beta_c  CC  PL  TBC  Магнитная масса  Разное
    Хотя странно, почему временной параметр так влияет на кодировку...

    Спасибо, что попытались помочь!

  9. #9
    Join Date
    Jan 2011
    Location
    Vladivostok
    Posts
    679

    Default Re: Слетает кодировка кириллицы на удалённой машине при ssh соединении

    похоже ему не нравится LC_TIME=ce_RU.UTF-8

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •