openssh-SNAP-20001207 scp "Bad file descriptor" sort-of work-around
Damien Miller
djm at mindrot.org
Thu Dec 7 14:41:14 EST 2000
On Wed, 6 Dec 2000, James wrote:
> Everything seems to work, though I still have trouble with scp. The
> behaviour is not protocol dependent - acts the same with either. (Using
> RedHat 6.2)
>
> When I scp <file> <host>:<dir>, bash is invoked as a login shell on the
> server side host - this doesn't seem right. With my /etc/profile, I get
Do you have something in your profile or shell rc which causes text to
be displayed on non-interactive logins?
What does "ssh localhost true" say?
You mustn't have junk being printed for non-interactive sessions.
-d
> Dec 6 15:06:20 amethyst sshd[3027]: error: select: Bad file descriptor
>
> in the log (something doesn't like my script), and
>
> sourcing /etc/profile...
> Connection to <host> closed by remote host.
>
> on the client side. (My /etc/profile generates the "sourcing
> /etc/profile..." message.)
>
> If instead I mv /etc/profile /etc/profile.tmp, scp is successful. strace
> then gives, toward the end:
>
> open("/etc/passwd", O_RDONLY) = 3
> fcntl(3, F_GETFD) = 0
> fcntl(3, F_SETFD, FD_CLOEXEC) = 0
> fstat(3, {st_mode=S_IFREG|0644, st_size=2335, ...}) = 0
> old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1,
> 0) = 0x40015000
> read(3, "root:x:0:0:root:/root:/bin/bash\n"..., 4096) = 2335
> close(3) = 0
> munmap(0x40015000, 4096) = 0
> ioctl(2, TCGETS, 0xbffff734) = -1 EINVAL (Invalid argument)
> rt_sigaction(SIGPIPE, {0x804b0bc, [], SA_RESTART|0x4000000}, {SIG_DFL}, 8)
> = 0
> pipe([3, 4]) = 0
> pipe([5, 6]) = 0
> pipe([7, 8]) = 0
> close(3) = 0
> close(4) = 0
> fork() = 21936
> close(5) = 0
> close(8) = 0
> read(7, bash: /etc/profile: No such file or directory
> bash: cma: command not found
> "\0", 1) = 1
> open("ssh-copy-id", O_RDONLY) = 3
> fstat(3, {st_mode=S_IFREG|0644, st_size=1144, ...}) = 0
> write(6, "C0644 1144 ssh-copy-id\n", 23) = 23
> read(7, "\0", 1) = 1
> fstat(3, {st_mode=S_IFREG|0644, st_size=1144, ...}) = 0
> brk(0x8051000) = 0x8051000
> read(3, "#!/bin/sh\n\n# Shell script to ins"..., 1144) = 1144
> write(6, "#!/bin/sh\n\n# Shell script to ins"..., 1144) = 1144
> close(3) = 0
> write(6, "\0", 1) = 1
> read(7, "\0", 1) = 1
> _exit(0)
>
> ("cma" is a missing command from /etc/profile called from ~/.profile.
> "ssh-copy-id" is the test file I'm trying to scp.)
>
> When scp breaks, the very end looks like:
>
> read(7, ".", 1) = 1
> read(7, "\n", 1) = 1
> write(2, "sourcing /etc/profile...\n", 25sourcing /etc/profile...
> ) = 25
> _exit(1) = ?
> Connection to <host> closed by remote host.
>
>
> So, is starting a bash login shell correct behavior for scp?
>
> This login shell behaviour is a problem, as you can see. An incompatibility
> with /etc/profile or ~/.profile kills scp - uhg.
>
> Might I have misconfigured something in ssh_config or sshd_config? or
> compiling the package? I have:
>
> OpenSSH configured has been configured with the following options.
> User binaries: /usr/bin
> User binaries: /usr/bin
> System binaries: /usr/sbin
> Configuration files: /etc/ssh
> Askpass program: /usr/libexec/ssh-askpass
> Manual pages: /usr/man/manX
> PID file: /var/run
> Random number collection: Device (/dev/urandom)
> Manpage format: man
> PAM support: yes
> KerberosIV support: no
> AFS support: no
> S/KEY support: yes
> TCP Wrappers support: yes
> MD5 password support: no
> IP address in $DISPLAY hack: no
> Use IPv4 by default hack: no
> Translate v4 in v6 hack: yes
>
> Host: i686-pc-linux-gnu
> Compiler: gcc
> Compiler flags: -g -O2 -Wall -I. -I. -I/usr/include
> Linker flags: -L/usr/lib -L/usr
> Libraries: -ldl -lnsl -lz -lutil -lpam -lcrypto -lskey -lwrap
>
>
> Please Cc me on any response, as I'm not subscribed to the list. Thanks.
>
>
> James Feeney
>
>
>
--
| ``We've all heard that a million monkeys banging on | Damien Miller -
| a million typewriters will eventually reproduce the | <djm at mindrot.org>
| works of Shakespeare. Now, thanks to the Internet, /
| we know this is not true.'' - Robert Wilensky UCB / http://www.mindrot.org
More information about the openssh-unix-dev
mailing list