conexão SSH usando putty: usando charset “UTF-8” em vez de “ANSI_X3.4-1968”?

0

Quando me conecto ao meu servidor Linux (Ubuntu 14.04) usando putty, tenho alguns problemas porque a conexão SSH sempre usa ANSI_X3.4-1968 como charset (saída de locale charmap ).

No entanto, meu sistema está configurado para usar de_DE.UTF-8 , que pode ser visto por cat /etc/default/locale :

LANG=de_DE.UTF-8
LC_MESSAGES=POSIX

O perfil de conexão usado da pasta usa UTF-8 como Conjunto de caracteres remoto (Janela - > Tradução). Eu também tentei usar o valor de_DE.UTF-8 aqui, mas não houve alteração.

O mais estranho é que quando eu logar no console físico execute locale charmap lá eu recebo o resultado correto e esperado: UTF-8 .

Por que eu obtenho diferentes conjuntos de caracteres configurados usando o Putty (v0.67) e o console físico? Isto é, portanto, um problema de configuração do putty, ou o problema está no lado do servidor linux?

Atualização 1:

Eu também comparei o /etc/pam.d/sshd com um de um segundo servidor similar que não é afetado por esse problema e ambos os arquivos eram idênticos. O mesmo vale para o arquivo /etc/ssh/ssh_config (ambos os arquivos contêm a linha SendEnv LANG LC_* ).

Eu também executei os seguintes comandos para garantir que os locais não estão com defeito:

sudo locale-gen --purge
sudo update-locale LANG=de_DE.UTF-8
    
por Robert 08.09.2016 / 10:04

1 resposta

2

Isso não tem nada a ver com o PuTTY. O que você configurou lá é apenas o conjunto de caracteres terminal , que diz ao PuTTY como decodificar o texto que recebe - mas não o passa para o servidor de qualquer forma .

As configurações de localidade ($ LANG & c.) são carregadas pelo próprio servidor - dependendo da distribuição, seja por source -ing / etc / default / locale do arquivo de inicialização do shell (por exemplo, de / etc / perfil), ou carregando-o via PAM usando o módulo pam_env.

Preencha suas configurações do PAM em /etc/pam.d para as menções de /etc/default/locale .

  • Se você encontrar uma linha pam_env correspondente diretamente em uma configuração de aplicativo, como /etc/pam.d/login , copie-a para aproximadamente o mesmo local em /etc/pam.d/sshd . (Preste atenção em onde a pilha está localizada).

  • Se você encontrar uma linha correspondente na configuração common-session compartilhada, certifique-se de que a configuração do PAM sshd a importe (por exemplo, via @include common-session ).

  • Se você não encontrar nada no PAM, verifique os arquivos de inicialização do shell.

por 08.09.2016 / 12:41