Intelligente Lösungen
in neuer Dimension

SSH: Probleme mit LANG

Ich beobachte immer mal wieder Probleme, wenn ich auf einem unserer Server Skripte zur Nutzung via SSH-Anmeldung bereitstelle. Manche meiner Kollegen setzen die Spracheinstellung ihrer Arbeitsplatzrechner auf “unorthodoxe” Art und Weise und das führt dann zu Fehlermeldungen nach der SSH-Anmeldung/Skript-Start. Insbesondere Perl-Skripte sorgen für Fehlermeldungen

Beispiel für eine Fehlermeldung

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
$ update-and-check.sh
...
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = (unset),
LC_ALL = (unset),
LC_ADDRESS = "de_DE.UTF-8",
LC_NAME = "de_DE.UTF-8",
LC_MONETARY = "de_DE.UTF-8",
LC_PAPER = "de_DE.UTF-8",
LC_IDENTIFICATION = "de_DE.UTF-8",
LC_TELEPHONE = "de_DE.UTF-8",
LC_MEASUREMENT = "de_DE.UTF-8",
LC_TIME = "de_DE.UTF-8",
LC_NUMERIC = "de_DE.UTF-8",
LANG = "en_US.UTF-8"
are supported and installed on your system.
perl: warning: Falling back to a fallback locale ("en_US.UTF-8").

Korrektur

Der Fehler tritt nicht mehr auf, wenn man in der Datei /etc/ssh/sshd_config die Zeile “AcceptEnv” deaktiviert. Dadurch werden die Spracheinstellungen durch den SSHD ignoriert.

1
2
3
4
5
6
7
8
9
10
11
--- /etc/ssh/sshd_config~ 2020-02-26 11:55:07.000000000 +0100
+++ /etc/ssh/sshd_config 2021-10-29 09:50:45.126481102 +0200
 @@ -110,7 +110,7 @@
 #Banner none

 # Allow client to pass locale environment variables
-AcceptEnv LANG LC_*
+#AcceptEnv LANG LC_*

 # override default of no subsystems
 Subsystem sftp /usr/lib/openssh/sftp-server

Änderungen

  • 2021-10-16 – Erste Version