Ich konnte das nirgendwo finden, also frage ich mich, ob ich der einzige bin, der ein solches Problem hat.
Standardmäßig hat ssh unter Red Hat und Debian mindestens eine ssh_config mit SendEnv-Option, die LC * - und LANG-Variablen in der Remote-Sitzung übergibt. Wenn jemand nicht root ist, um / etc / ssh / ssh_config zu ändern, wie kann er dieses Verhalten deaktivieren? Die SendEnv-Option scheint sich zu häufen, und ich sehe keine Möglichkeit, sie zurückzusetzen.
Und um nicht gefragt zu werden, muss vermieden werden, dass mein Gebietsschema an Testcomputer übergeben wird, um Nebenwirkungen auf Skripts und Programmen zu vermeiden, bei denen das Gebietsschema als Standard für den Computer verwendet wird.
ssh
debian
redhat-enterprise-linux
openssh
akostadinov
quelle
quelle
env
oder mit einem Wrapper-Skript aufrufen ?Antworten:
Du bist nicht der einzige . Wie dokumentiert in
ssh_config(5)
können Sie nicht ungesetztSendEnv
, weilWenn Sie root auf den Testmaschinen haben, können Sie ändern
AcceptEnv
, dass vom Client gesendete Variablen nicht akzeptiert werden.quelle
Dies kann nicht durchgeführt werden,
~/.ssh/config
daSendEnv
es nicht überschrieben werden kann.Die Verwendung von Aliasen funktioniert nicht für Skripte, die ssh aufrufen.
Eine Alternative ist das Exportieren einer Funktion. ZB in
~/.bashrc
:quelle
Es gibt die Möglichkeit
SetEnv
, einenLANG
bestimmten Wert vor dem Senden zu erzwingen .Das sagt auch die Manpage
aber ich habe es nicht geschafft, diese Arbeit zu machen.
quelle
-
Ansatz nicht funktioniert hat. Guter Vorschlag jedoch, Remote-LANG und andere Variablen in der ssh-Konfiguration fest zu codieren. Macht die Dinge vorhersehbarer. MöglicherweiseSetEnv
handelt es sich um eine neuere Richtlinie, weil niemand anderes dies vorgeschlagen hat.SetEnv LANG=en_US.UTF-8
Wenn Sie bash verwenden, können Sie einen Alias ssh = 'LANG = command ssh' einrichten, um die Weiterleitung von LANG an die anderen Server zu deaktivieren.
quelle
Sie können verwenden,
su - youruser
wenn Sie über ssh angemeldet sind. Dadurch wird die Umgebung für den Benutzer neu initialisiert.Tatsächlich initialisieren Sie eine neue Sitzung mit einer neuen Umgebung.
quelle
Nach
man ssh
:Sie können also ssh ausführen, ohne dies zu beachten,
/etc/ssh/ssh_config
indem Sie die (Standard-) Konfigurationsdatei in der Befehlszeile explizit angeben (es~/.ssh/config
ist in Ordnung, leer zu sein):Sie können einen Alias dafür erstellen in
~/.bashrc
:Starten Sie die Bash-Shell neu, dann können Sie einfach so ssh:
quelle
if one supplies on command line -F, then the system wide config is ignored according to man page
from bugzilla.mindrot.org/show_bug.cgi?id=1285 ; Es ist eine Option, aber nicht wirklich die gewünschte Funktion.