Je n'ai pu trouver cela nulle part, donc je me demande si je suis le seul à avoir un tel problème.
Par défaut, ssh sur Red Hat et Debian a au moins un ssh_config avec l'option SendEnv passant les variables LC * et LANG dans la session distante. Si l'on n'est pas root pour changer / etc / ssh / ssh_config, comment peut-il désactiver ce comportement? L'option SendEnv semble s'accumuler et je ne vois aucun moyen de la réinitialiser.
Et pour éviter qu'on me le demande, je dois éviter de transmettre mes paramètres régionaux aux machines de test pour éviter les effets secondaires sur les scripts et les programmes qui dépendent des paramètres régionaux comme paramètres par défaut pour la machine.
ssh
debian
redhat-enterprise-linux
openssh
akostadinov
la source
la source
env
ou avec un script wrapper?Réponses:
Tu n'es pas le seul . Comme documenté dans,
ssh_config(5)
vous ne pouvez pas annulerSendEnv
, carSi vous avez root sur les machines de test, vous pouvez changer
AcceptEnv
pour ne pas accepter les variables envoyées par le client.la source
Cela ne peut pas être fait
~/.ssh/config
carSendEnv
ne peut pas être remplacé.L'utilisation d'alias ne fonctionnera pas pour les scripts qui appellent ssh.
Une alternative consiste à exporter une fonction. Par exemple dans
~/.bashrc
:la source
Il y a l'option
SetEnv
, on peut forcerLANG
à une valeur spécifique avant de l'envoyer.La page de manuel indique également que
mais je n'ai pas réussi à faire ça.
la source
-
approche n'a pas fonctionné. Bonne suggestion cependant pour coder en dur LANG distant et d'autres vars dans la configuration ssh. Rend les choses plus prévisibles. PeutSetEnv
- être est-ce une directive plus récente parce que personne d'autre ne l'a suggérée.SetEnv LANG=en_US.UTF-8
Si vous utilisez bash, vous pouvez configurer un alias ssh = 'LANG = command ssh' pour désactiver le passage de LANG aux autres serveurs.
la source
Vous pouvez l'utiliser
su - youruser
lorsque vous êtes connecté via ssh. Cela réinitialisera l'environnement pour l'utilisateur.En fait, vous initialisez une nouvelle session avec un nouvel environnement.
la source
Selon
man ssh
:Ainsi, vous pouvez ssh sans vous y conformer
/etc/ssh/ssh_config
en spécifiant explicitement le fichier de configuration (par défaut) sur la ligne de commande (~/.ssh/config
est OK pour être vide):Vous pouvez en créer un alias dans
~/.bashrc
:Redémarrez le shell bash, puis vous pouvez simplement ssh comme ceci:
la source
if one supplies on command line -F, then the system wide config is ignored according to man page
de bugzilla.mindrot.org/show_bug.cgi?id=1285 ; c'est une option mais pas vraiment la fonctionnalité souhaitée.