mosh
utilise l'environnement local pris en charge par ssh
. Bien qu'il mosh
n'y ait apparemment aucune option détaillée ou de débogage, vous pouvez lui indiquer la ssh
commande à utiliser lors de la connexion et en ajoutant une -vvv
option, il peut ssh
montrer quelles variables locales il envoie .
Par exemple, en commençant par
mosh -ssh='ssh -vvv' root@server
vous pourriez voir
debug1: Sending env LC_ALL = C
debug2: channel 0: request env confirm 0
pour POSIX, et
debug1: Sending env LC_CTYPE = en_US.UTF-8
debug2: channel 0: request env confirm 0
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 de AcceptEnv
dans la configuration de sshd
- ou des SendEnv
paramètres de votre utilisateur (dans votre ssh
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,
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 est différent, faisant des hypothèses sur ssh et gdm avant de lire essentiellement les mêmes fichiers:
#
# 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
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).