Estoy intentando conectarme desde mi Gentoo al servidor RHEL. Ambos se han mosh
instalado, sin embargo, aparece este error:
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.
En RHEL tengo las siguientes configuraciones regionales:
# 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=
¿Cómo puedo arreglar esto?
ACTUALIZACIÓN: El problema parece estar en el lado de Gentoo, conectarse al servidor Debian produce el mismo error, conectarse usando otras distribuciones funciona.
ACTUALIZACIÓN2: lo arreglé agregando
LANG="en_US.UTF-8"
export LANG
dentro ~/.bashrc
Respuestas:
Solución simple
fuente
LC_ALL="en_US.UTF-8" mosh root@server
mosh
usa el entorno local compatible conssh
. Si bienmosh
aparentemente no tiene opciones detalladas o de depuración, puede decirle quéssh
comando usar al conectarse y al agregar una-vvv
opción puedessh
mostrar qué variables de configuración regional envía .Por ejemplo, comenzando con
es posible que vea
para POSIX y
que muestran que el servidor confirma las variables que se utilizan. El control remoto
sshd
puede ignorar parte de su entorno dependiendo de la configuración deAcceptEnv
la configuración desshd
- o la configuración de su usuarioSendEnv
(en sussh
configuración).No todos los servidores aceptan sus variables locales a través de ssh.
Incluso con la configuración de configuración permisiva, aún es posible (particularmente porque se está conectando al usuario raíz ) que alguien haya decidido que la configuración regional para ese usuario debe ser POSIX. Para root , eso tiene algún sentido porque se metería en menos problemas al seleccionar / pegar la copia.
Por ejemplo, algunos sistemas utilizan
/etc/profile.d/lang.sh
para establecer la configuración regional para uso interactivo. Esa secuencia de comandos difiere de un sistema a otro, y es el segundo lugar (después de las configuraciones ssh / sshd) a tener en cuenta al buscar una explicación de por qué la información regional no se pasa a un sistema remoto. Con Red Hat (CentOS), el script intenta obtener información de la configuración del sistema y del hogar, por ejemplo,SuSE es diferente, haciendo suposiciones sobre ssh y gdm antes de leer esencialmente los mismos archivos:
Para sus servidores particulares (versión no especificada), el script puede diferir de una versión a otra. Mis servidores Debian no tienen ese archivo, y dependen de la configuración regional predeterminada del sistema y gdm (que pueden diferir) para establecer la configuración regional interactiva. Su conexión ssh podría usar un valor diferente con la configuración regional del sistema que una sesión interactiva usando X (a través de gdm). En ese caso, la configuración regional del sistema es el lugar para arreglar (consulte Configuración regional en la wiki de Debian).
fuente