SSH-Verbindung mit Putty: Zeichensatz "UTF-8" anstelle von "ANSI_X3.4-1968" verwenden?

1198
Robert

Wenn ich mich mit Putty mit meinem Linux-Server (Ubuntu 14.04) verbinde, habe ich einige Probleme, da die SSH-Verbindung immer ANSI_X3.4-1968als Zeichensatz (Ausgabe von locale charmap) verwendet wird.

Allerdings ist mein System zu verwenden, konfiguriert, de_DE.UTF-8die durch zu sehen ist cat /etc/default/locale:

LANG=de_DE.UTF-8 LC_MESSAGES=POSIX 

Das verwendete Verbindungsprofil von putty wird UTF-8als Remote-Zeichensatz verwendet (Fenster -> Übersetzung). Ich habe auch versucht, den Wert de_DE.UTF-8hier zu verwenden, aber es gab keine Änderung.

Das Merkwürdige ist, dass, wenn ich auf der physischen Konsole anmelden einen Ausführungs locale charmapdort ich das richtige und erwartetes Ergebnis: UTF-8.

Warum erhalte ich unterschiedliche konfigurierte Zeichensätze mit Putty (v0.67) und der physischen Konsole? Ist dies ein Problem mit der Kittkonfiguration oder liegt das Problem auf der Linux-Serverseite?

Update 1:

Ich verglich auch den /etc/pam.d/sshdmit einem zweiten ähnlichen Server, der nicht von diesem Problem betroffen ist, und beide Dateien waren identisch. Gleiches gilt für die Datei /etc/ssh/ssh_config(beide Dateien enthalten die Zeile SendEnv LANG LC_*).

Ich habe auch die folgenden Befehle ausgeführt, um sicherzustellen, dass die Ländereinstellungen nicht fehlerhaft sind:

sudo locale-gen --purge sudo update-locale LANG=de_DE.UTF-8 
0

1 Antwort auf die Frage

2
grawity

Das hat nichts mit PuTTY zu tun. Was Sie dort konfiguriert haben, ist nur der Terminal- Zeichensatz, der PuTTY mitteilt, wie der empfangene Text zu decodieren ist, der Text wird jedoch nicht an den Server weitergegeben.

Die Gebietsschema-Einstellungen ($ LANG & c.) Werden vom Server selbst geladen - abhängig von der Distribution entweder durch sourceEingabe von-etc / default / locale aus der Startdatei der Shell (z. B. von / etc / profile) oder durch Laden über PAM mit dem Modul pam_env.

Erwähnen Sie Ihre PAM-Konfigurationen /etc/pam.dfür Erwähnungen von /etc/default/locale.

  • Wenn Sie eine übereinstimmende pam_env-Zeile direkt in einer App-Konfiguration finden, z. B. /etc/pam.d/login, kopieren Sie sie an ungefähr dieselbe Stelle in /etc/pam.d/sshd. (Achten Sie darauf, wo sich der Stapel befindet.)

  • Wenn Sie eine übereinstimmende Zeile in der gemeinsam genutzten common-sessionKonfiguration finden, stellen Sie sicher, dass die sshd PAM-Konfiguration diese importiert (z @include common-session. B. via ).

  • Wenn Sie in PAM nichts finden, überprüfen Sie stattdessen die Startdateien der Shell.

Danke für die Antwort. Ich habe viel gelernt, leider hat es mein Problem nicht gelöst (siehe aktualisierte Frage). Robert vor 7 Jahren 0
Sie haben `/ etc / pam.d / sshd` verglichen, aber haben Sie die anderen Dateien verglichen? grawity vor 7 Jahren 0
Md5sum von `/ etc / pam.d / *` wurde erstellt und sie sind auf beiden Servern identisch. Aber ich fand den wichtigen Unterschied. Es war `/ etc / ssh / sshd_config`. Sieht aus, als hätte jemand wichtige Zeilen daraus entfernt. Robert vor 7 Jahren 0