[Bug 1179344] [NEW] ssh doesn't get pty; says "inappropriate ioctl for device"

Todd A. Jacobs 1179344 at bugs.launchpad.net
Mon May 13 02:22:30 UTC 2013


Public bug reported:

## Versions

    $ lsb_release -rd
    Description:    Ubuntu Saucy Salamander (development branch)
    Release:        13.10

    $ uname -a
    Linux emu 3.9.0-1-generic #5-Ubuntu SMP Wed May 8 20:52:16 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

    $ apt-show-versions -a openssh-server
    openssh-server 1:6.2p1-2 install ok installed
    openssh-server 1:6.2p1-2 saucy us.archive.ubuntu.com

## Problem

After a recent (accidental) upgrade to 13.10, recent updates to the
kernel seem to make inbound SSH connections problematic. Specifically,
the remote client is unable to connect to a login shell. This was
extremely difficult to diagnose, because all the client says is:

    $ ssh emu 
    Last login: Sun May 12 21:35:35 2013 from goldendelicious
    Shared connection to 192.168.1.127 closed.
    Connection to 192.168.1.127 closed by remote host.

Even with the verbose flag turned on (e.g. `-v` and `-vvv`) all you see
is that you connect, then get "debug1: Exit status -1" for no
discernable reason. The rest of the verbose output is completely
uninteresting However, there are other ways to debug this, as shown
below.

### SSH connection results in dumb terminal

    $ echo $TERM
    xterm-256color

    $ ssh emu /bin/echo \$TERM
    dumb

As you can see, openssh does not use the correct TERM environment
variable. However, manually setting TERM (e.g. `export TERM=vt100`)
doesn't solve the problem, because you don't actually have a pty. See
next section.

### Non-login shells work...sort of

    $ ssh emu /bin/bash -i
    bash: cannot set terminal process group (-1): Inappropriate ioctl for device
    bash: no job control in this shell
    emu:~$  echo $TERM
    echodumb
     $TERM
    emu:~$ tty
    tty
    not a tty

As you can see here, openssh is unable to open a tty or pty. If you try
to force it with `-t` or `-tt`, then it returns to the previous behavior
of simply closing the connection without explanation.

## Temporary Work-Around

One way to work around this problem is to use X-Forwarding to launch an
xterm as a login shell. For example:

    $ ssh emu xterm -e 'bash -l'

This works, assigns a pty, and otherwise results in a usable remote
connection, but is certainly not a substitute for having a working
non-X11 shell.

## Expected Behavior

1. OpenSSH should receive a pty on the remote host.
2. The TERM variable should be properly propogated.
3. There should be a more obvious way to debug this; openssh reports NOTHING of use in this situation, even with maximum verbosity.

ProblemType: Bug
DistroRelease: Ubuntu 13.10
Package: openssh-server 1:6.2p1-2
ProcVersionSignature: Ubuntu 3.9.0-1.5-generic 3.9.1
Uname: Linux 3.9.0-1-generic x86_64
NonfreeKernelModules: nvidia
ApportVersion: 2.10-0ubuntu3
Architecture: amd64
Date: Sun May 12 21:40:41 2013
EcryptfsInUse: Yes
InstallationDate: Installed on 2011-10-15 (575 days ago)
InstallationMedia: Ubuntu 11.10 "Oneiric Ocelot" - Release amd64 (20111012)
MarkForUpload: True
SourcePackage: openssh
UpgradeStatus: Upgraded to saucy on 2013-05-06 (6 days ago)

** Affects: openssh (Ubuntu)
     Importance: Undecided
         Status: New


** Tags: amd64 apport-bug saucy uec-images

-- 
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/1179344

Title:
  ssh doesn't get pty; says "inappropriate ioctl for device"

Status in “openssh” package in Ubuntu:
  New

Bug description:
  ## Versions

      $ lsb_release -rd
      Description:    Ubuntu Saucy Salamander (development branch)
      Release:        13.10

      $ uname -a
      Linux emu 3.9.0-1-generic #5-Ubuntu SMP Wed May 8 20:52:16 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

      $ apt-show-versions -a openssh-server
      openssh-server 1:6.2p1-2 install ok installed
      openssh-server 1:6.2p1-2 saucy us.archive.ubuntu.com

  ## Problem

  After a recent (accidental) upgrade to 13.10, recent updates to the
  kernel seem to make inbound SSH connections problematic. Specifically,
  the remote client is unable to connect to a login shell. This was
  extremely difficult to diagnose, because all the client says is:

      $ ssh emu 
      Last login: Sun May 12 21:35:35 2013 from goldendelicious
      Shared connection to 192.168.1.127 closed.
      Connection to 192.168.1.127 closed by remote host.

  Even with the verbose flag turned on (e.g. `-v` and `-vvv`) all you
  see is that you connect, then get "debug1: Exit status -1" for no
  discernable reason. The rest of the verbose output is completely
  uninteresting However, there are other ways to debug this, as shown
  below.

  ### SSH connection results in dumb terminal

      $ echo $TERM
      xterm-256color

      $ ssh emu /bin/echo \$TERM
      dumb

  As you can see, openssh does not use the correct TERM environment
  variable. However, manually setting TERM (e.g. `export TERM=vt100`)
  doesn't solve the problem, because you don't actually have a pty. See
  next section.

  ### Non-login shells work...sort of

      $ ssh emu /bin/bash -i
      bash: cannot set terminal process group (-1): Inappropriate ioctl for device
      bash: no job control in this shell
      emu:~$  echo $TERM
      echodumb
       $TERM
      emu:~$ tty
      tty
      not a tty

  As you can see here, openssh is unable to open a tty or pty. If you
  try to force it with `-t` or `-tt`, then it returns to the previous
  behavior of simply closing the connection without explanation.

  ## Temporary Work-Around

  One way to work around this problem is to use X-Forwarding to launch
  an xterm as a login shell. For example:

      $ ssh emu xterm -e 'bash -l'

  This works, assigns a pty, and otherwise results in a usable remote
  connection, but is certainly not a substitute for having a working
  non-X11 shell.

  ## Expected Behavior

  1. OpenSSH should receive a pty on the remote host.
  2. The TERM variable should be properly propogated.
  3. There should be a more obvious way to debug this; openssh reports NOTHING of use in this situation, even with maximum verbosity.

  ProblemType: Bug
  DistroRelease: Ubuntu 13.10
  Package: openssh-server 1:6.2p1-2
  ProcVersionSignature: Ubuntu 3.9.0-1.5-generic 3.9.1
  Uname: Linux 3.9.0-1-generic x86_64
  NonfreeKernelModules: nvidia
  ApportVersion: 2.10-0ubuntu3
  Architecture: amd64
  Date: Sun May 12 21:40:41 2013
  EcryptfsInUse: Yes
  InstallationDate: Installed on 2011-10-15 (575 days ago)
  InstallationMedia: Ubuntu 11.10 "Oneiric Ocelot" - Release amd64 (20111012)
  MarkForUpload: True
  SourcePackage: openssh
  UpgradeStatus: Upgraded to saucy on 2013-05-06 (6 days ago)

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




More information about the foundations-bugs mailing list