0 votes

sshd ne définit pas les paramètres linguistiques

Edit : J'aurais dû mentionner dans ma question initiale que j'utilisais le client SSH MacPorts, car il s'est avéré qu'il y avait deux causes principales. Voir ma propre réponse ci-dessous.

Lorsque je me connecte en SSH à ma machine OSX, les paramètres linguistiques ne sont pas correctement définis :

LANG=
LC_COLLATE="C"
LC_CTYPE="C"
LC_MESSAGES="C"
LC_MONETARY="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_ALL=

Il faut utiliser une locale UTF-8. Elle devrait ressembler à ceci :

LANG="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_CTYPE="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_ALL=

J'utilise OSX 10.11.6 (El Capitan), et j'ai activé le serveur SSH dans les préférences système.

J'utilise putty comme client sur ma machine Windows. Lorsque j'utilise la même configuration de putty pour me connecter à un serveur Linux, les informations locales sont correctes.

Lorsque je lance un terminal local sur la machine OSX, les paramètres linguistiques sont corrects. Si je lance ensuite ssh localhost J'ai le même problème : aucune locale n'est définie.

Il semble que mon serveur SSH OSX ignore ou rejette les informations locales du client. J'ai ce qui suit dans mon fichier (non modifié) /etc/ssh/sshd_config :

AcceptEnv LANG LC_*

À ma connaissance, c'est tout ce qui est nécessaire.

Ma configuration putty envoie TERM=xterm-256color qui est respecté ; c'est seulement l'information locale qui ne fonctionne pas, et pour répéter, cela se produit lorsque j'utilise la fonction ssh localhost d'OSX à lui-même, donc je ne pense pas que putty soit le problème ici.

Je n'accepterai pas les réponses qui suggèrent de définir les paramètres locaux dans mon .profile Il y a beaucoup de réponses ici qui suggèrent cela, mais c'est un piratage, pas une solution.

1voto

Rey Fracktory Points 55

Il s'est avéré qu'il y avait deux problèmes :

Tout d'abord, PuTTY n'envoyait pas d'informations sur les paramètres linguistiques. Apparemment, les serveurs Linux configuraient les paramètres linguistiques automatiquement, ou en se basant sur les paramètres de l TERM ou quelque chose comme ça. J'ai réparé PuTTY en configurant des variables d'environnement pour qu'il puisse envoyer :

PuTTY locale configuration

Deuxièmement, j'utilise MacPorts (question mise à jour car cela manquait dans l'original), et MacPorts ssh n'envoie pas de variables locales . Je ne sais pas pourquoi MacPorts configure SSH de cette façon, mais j'ai dû ajouter ce qui suit à /opt/local/etc/ssh/ssh_config :

Host *
  SendEnv LANG LC_*

Cela devrait vraiment être la configuration par défaut de MacPorts ; c'est la configuration par défaut de tout système Linux standard, et c'est même la configuration par défaut du SSH d'OSX. J'ai découvert que MacPorts faisait partie du problème lorsque SSH de Linux vers OSX définissait la locale.

J'ai déposé une ticket avec MacPorts suggérant de modifier la valeur par défaut.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X