mosh-server'ın çalışması için UTF-8 yerel yerel ayarının olması gerekir


9

Gentoo'mdan RHEL sunucusuna bağlanmaya çalışıyorum. Her ikisi de moshyüklü, ancak bu hatayı alıyorum:

petanb@localhost ~/Documents $ mosh root@server 
mosh-server needs a UTF-8 native locale to run.

Unfortunately, the local environment ([no charset variables]) specifies
the character set "US-ASCII",

The client-supplied environment ([no charset variables]) specifies
the character set "US-ASCII".

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=
Connection to server closed.
/usr/bin/mosh: Did not find mosh server startup message.

RHEL'de şu yerel ayarlara sahibim:

# 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=

Bunu nasıl düzeltebilirim?

GÜNCELLEME: Sorun Gentoo tarafında gibi görünüyor, debian sunucusuna bağlanmak aynı dağıtım üretir, diğer dağıtımlar kullanarak bağlanma.

UPDATE2: Ekleyerek düzelttim

LANG="en_US.UTF-8"
export LANG

içine ~/.bashrc


Ubuntu veya herhangi bir Debian benzeri dağıtım kullanan kişiler için burada bir çözüm olabilir.
Pablo A

Yanıtlar:


6

Basit Çözüm

user@machine:~$ LC_ALL="en_US.UTF-8" mosh-server

Açık değilse, bu istemcide kullanılabilir:LC_ALL="en_US.UTF-8" mosh root@server
Tim Visee

3

moshtarafından desteklenen yerel ortamı kullanır ssh. İken moshgörünüşte hiçbir verbose- veya hata ayıklama-seçenekler vardır, ne de söyleyebilir sshbağlanırken komut kullanımına ve bir ekleyerek -vvvolabilir seçeneği ssho değişkenleri yereli gösterisi gönderir .

Örneğin,

mosh -ssh='ssh -vvv' root@server

görebilirsin

debug1: Sending env LC_ALL = C  
debug2: channel 0: request env confirm 0

POSIX için ve

debug1: Sending env LC_CTYPE = en_US.UTF-8
debug2: channel 0: request env confirm 0

sunucunun kullanılan değişkenleri onayladığını gösterir . Uzaktan kumanda , yapılandırma yapılandırmasında veya kullanıcı ayarlarınızda ( yapılandırmanızda) sshdbağlı olarak ortamınızın bir kısmını göz ardı edebilir .AcceptEnvsshdSendEnvssh

Tüm sunucular yerel değişkenlerinizi ssh ile kabul etmez.

Konfigürasyon kurulumuna izin verilse bile, (özellikle kök kullanıcıya bağlandığınız için ) birisinin o kullanıcının yerel ayarının POSIX olması gerektiğine karar vermesi hala mümkündür . İçin root Eğer seçme az belaya çünkü bazı mantıklı / kopyalama yapıştırın.

Örneğin, bazı sistemler /etc/profile.d/lang.shetkileşimli kullanım için yerel ayarı ayarlamak için kullanılır. Bu komut dosyası bir sistemden diğerine farklılık gösterir ve yerel bilgilerin uzak bir sisteme neden aktarılmadığına ilişkin bir açıklama ararken göz önünde bulundurulması gereken ikinci yerdir (ssh / sshd yapılandırmalarından sonra). Red Hat (CentOS) ile komut dosyası, sistem ve ev yapılandırmasından, örneğin,

if [ -n "$LANG" ]; then
    saved_lang="$LANG"
    [ -f "$HOME/.i18n" ] && . "$HOME/.i18n" && sourced=1
    LANG="$saved_lang"
    unset saved_lang
else
    for langfile in /etc/locale.conf "$HOME/.i18n" ; do
        [ -f $langfile ] && . $langfile && sourced=1
    done
fi

SuSE farklıdır, temelde aynı dosyaları okumadan önce ssh ve gdm hakkında varsayımlar yapar :

#
# lang.sh:      Set interactive language environment
#
# Used configuration files:
#
#     /etc/sysconfig/language
#     $HOME/.i18n
#

#
# Already done by the remote SSH side
#
test -z "$SSH_SENDS_LOCALE" || return

#
# Already done by the GDM
#
test -z "$GDM_LANG" || return

Belirli sunucularınız için (sürüm belirtilmedi), komut dosyası bir sürümden diğerine farklılık gösterebilir. Debian sunucularım bu dosyaya sahip değil ve etkileşimli yerel ayarı ayarlamak için varsayılan sistem yerel ayarına ve gdm'ye (farklılık gösterebilir) güveniyor. Ssh bağlantınız sistem yerel ayarında X (gdm aracılığıyla) kullanarak etkileşimli bir oturumdan farklı bir değer kullanabilir. Bu durumda, sistem yerel ayarı düzeltilecek yerdir (bkz . Debian wiki'deki Yerel Ayar ).

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.