[Bug 920749] Re: pam configuration for SSH prevents LANG override

Evan Jeffrey ejeffrey at gmail.com
Sun Apr 22 14:59:32 UTC 2012


Can we at least get a documentation fix on this 5 year old bug?  The
ssh_config and sshd_config man pages, as well as the comments in those
configuration files specifically call out that the LANG and LC_*
environment variables are configured to be passed from client to server,
and they are so configured.  However, on a default install this will not
actually happen.  The documentation should be changed to reflect the
fact that while the environmental variables will be passed, PAM will
override the user preferences with the system defaults.

-- 
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to openssh in Ubuntu.
https://bugs.launchpad.net/bugs/920749

Title:
  pam configuration for SSH prevents LANG override

Status in Portable OpenSSH:
  Confirmed
Status in “openssh” package in Ubuntu:
  Triaged
Status in “openssh” package in Debian:
  Confirmed

Bug description:
  The default /etc/pam.d/sshd configuration has:

  # Read environment variables from /etc/environment and
  # /etc/security/pam_env.conf.
  #auth       required     pam_env.so # [1]
  # In Debian 4.0 (etch), locale-related environment variables were moved to
  # /etc/default/locale, so read that as well.
  auth       required     pam_env.so envfile=/etc/default/locale

  The default SSH client configuration has "Send LC_*" and the default
  SSH server configuration has "Accept LC_*". The PAM configuration
  prevents any user-overrides for locale settings.

  For example, if /etc/default/locale has:
  LANG=en_US.UTF-8
  LC_COLLATE=C

  Then running "LANG=zh_SG.utf8 LC_COLLATE=en_US.UTF-8 ssh myspecialhost.foo.bar.com" yields:
  ubuntu at ip-10-12-15-243:~$ locale
  LANG=en_US.UTF-8
  LC_COLLATE=C
  (output truncated for clarity)

  While having a blank /etc/default/locale yeilds:
  ubuntu at ip-10-12-15-243:~$ locale
  locale: Cannot set LC_ALL to default locale: No such file or directory
  LANG=zh_SG.utf8
  LC_COLLATE=en_US.UTF-8
  (output truncated for clarity)

  I think, although I am not sure, that this is a bug with the default
  configuration. It means that in order for server to accept multple
  languages or LC_* bindings, the system locale default would have to be
  unset. Effectively this is forcing the system default on all users.

To manage notifications about this bug go to:
https://bugs.launchpad.net/openssh/+bug/920749/+subscriptions




More information about the foundations-bugs mailing list