J'essaie de me connecter de mon Gentoo au serveur RHEL. Les deux ont mosh
installé, mais je reçois cette erreur:
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.
Sur RHEL, j'ai les paramètres régionaux suivants:
# 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=
Comment puis-je réparer cela?
MISE À JOUR: Le problème semble être du côté de Gentoo, la connexion au serveur Debian produit la même erreur, la connexion à l'aide d'autres distributions.
UPDATE2: je l'ai corrigé en ajoutant
LANG="en_US.UTF-8"
export LANG
dans ~/.bashrc
Réponses:
Solution simple
la source
LC_ALL="en_US.UTF-8" mosh root@server
mosh
utilise l'environnement local pris en charge parssh
. Bien qu'ilmosh
n'y ait apparemment aucune option détaillée ou de débogage, vous pouvez lui indiquer lassh
commande à utiliser lors de la connexion et en ajoutant une-vvv
option, il peutssh
montrer quelles variables locales il envoie .Par exemple, en commençant par
vous pourriez voir
pour POSIX, et
qui montrent que le serveur confirme les variables utilisées. La télécommande
sshd
peut ignorer une partie de votre environnement en fonction du paramètre deAcceptEnv
dans la configuration desshd
- ou desSendEnv
paramètres de votre utilisateur (dans votressh
configuration).Tous les serveurs n'acceptent pas vos variables locales via ssh.
Même avec la configuration configurée de manière permissive, il est toujours possible (en particulier depuis que vous vous connectez à l' utilisateur root ) que quelqu'un ait décidé que les paramètres régionaux pour cet utilisateur devraient être POSIX. Pour root , cela a du sens car vous auriez moins de problèmes en sélectionnant / collant la copie.
Par exemple, certains systèmes utilisent
/etc/profile.d/lang.sh
pour définir les paramètres régionaux pour une utilisation interactive. Ce script diffère d'un système à l'autre et est le deuxième endroit (après les configurations ssh / sshd) à considérer lors de la recherche d'une explication pour laquelle les informations locales ne sont pas transmises à un système distant. Avec Red Hat (CentOS), le script tente d'obtenir des informations à partir de la configuration système et domestique, par exemple,SuSE est différent, faisant des hypothèses sur ssh et gdm avant de lire essentiellement les mêmes fichiers:
Pour vos serveurs particuliers (version non spécifiée), le script peut différer d'une version à l'autre. Mes serveurs Debian n'ont pas ce fichier - et s'appuient sur les paramètres régionaux par défaut du système et gdm (qui peuvent différer) pour définir les paramètres régionaux interactifs. Votre connexion ssh peut utiliser une valeur différente avec les paramètres régionaux du système qu'une session interactive utilisant X (via gdm). Dans ce cas, les paramètres régionaux du système sont l'endroit à corriger (voir Paramètres régionaux dans le wiki Debian).
la source