Client locale Einstellungen für SSH Client deaktivieren

Auf meinem privaten Server bekam ich vor kurzem immer wieder Fehlermeldung bzgl. der locale Einstellungen wie diese

perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
	LANGUAGE = "en_GB:en",
	LC_ALL = (unset),
	LC_CTYPE = "UTF-8",
	LANG = "en_US.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").

Das ganze wirkte sich bis auf das Paketmanagement aus so dass ich nicht in der Lage war den Key eines PPA’s hinzuzufügen

gpg: keyring `/tmp/tmpevvuosx7/secring.gpg' created
gpg: keyring `/tmp/tmpevvuosx7/pubring.gpg' created
gpg: requesting key E5267A6C from hkp server keyserver.ubuntu.com
gpg: /tmp/tmpevvuosx7/trustdb.gpg: trustdb created
gpg: key E5267A6C: public key "Launchpad PPA for Ond\xc5\x99ej Sur?" imported
gpg: Total number processed: 1
gpg:               imported: 1  (RSA: 1)
Exception in thread Thread-1:
Traceback (most recent call last):
  File "/usr/lib/python3.4/threading.py", line 920, in _bootstrap_inner
    self.run()
  File "/usr/lib/python3.4/threading.py", line 868, in run
    self._target(*self._args, **self._kwargs)
  File "/usr/lib/python3/dist-packages/softwareproperties/SoftwareProperties.py", line 687, in addkey_func
    func(**kwargs)
  File "/usr/lib/python3/dist-packages/softwareproperties/ppa.py", line 370, in add_key
    return apsk.add_ppa_signing_key()
  File "/usr/lib/python3/dist-packages/softwareproperties/ppa.py", line 261, in add_ppa_signing_key
    tmp_export_keyring, signing_key_fingerprint, tmp_keyring_dir):
  File "/usr/lib/python3/dist-packages/softwareproperties/ppa.py", line 210, in _verify_fingerprint
    got_fingerprints = self._get_fingerprints(keyring, keyring_dir)
  File "/usr/lib/python3/dist-packages/softwareproperties/ppa.py", line 202, in _get_fingerprints
    output = subprocess.check_output(cmd, universal_newlines=True)
  File "/usr/lib/python3.4/subprocess.py", line 605, in check_output
    output, unused_err = process.communicate(inputdata, timeout=timeout)
  File "/usr/lib/python3.4/subprocess.py", line 936, in communicate
    stdout = _eintr_retry_call(self.stdout.read)
  File "/usr/lib/python3.4/subprocess.py", line 487, in _eintr_retry_call
    return func(*args)
  File "/usr/lib/python3.4/encodings/ascii.py", line 26, in decode
    return codecs.ascii_decode(input, self.errors)[0]
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc5 in position 92: ordinal not in range(128)

Das Problem

Der SSH Server ermöglicht es standardmäßig dem Client eigene locale Einstellungen zu senden und vorzunehmen so dass der SSH Client die Shell an seine Spracheinstellungen angepasst öffnen kann. Dies führt aber bei einer SSH Sitzung von meinem Macbook dazu das der Ubuntu Server die locales nicht kennt.

Die Lösung

Die folgende Zeile in der SSH Server Konfiguration unter /etc/ssh/sshd_config auskommentieren und den SSH Daemon durchstarten.

# Allow client to pass locale environment variables
#AcceptEnv LANG LC_*
sudo service ssh restart

Leave a Reply

Your email address will not be published. Required fields are marked *