- (djm) Merge openssh-TODO.patch from Redhat (null) beta
This commit is contained in:
parent
c13486300d
commit
539983800d
|
@ -4,6 +4,7 @@
|
||||||
[servconf.c sshd.8 sshd_config.5]
|
[servconf.c sshd.8 sshd_config.5]
|
||||||
default LoginGraceTime to 2m; 1m may be too short for slow systems.
|
default LoginGraceTime to 2m; 1m may be too short for slow systems.
|
||||||
ok markus@
|
ok markus@
|
||||||
|
- (djm) Merge openssh-TODO.patch from Redhat (null) beta
|
||||||
|
|
||||||
20020903
|
20020903
|
||||||
- (djm) Patch from itojun@ for Darwin OS: test getaddrinfo, reorder libcrypt
|
- (djm) Patch from itojun@ for Darwin OS: test getaddrinfo, reorder libcrypt
|
||||||
|
@ -1604,4 +1605,4 @@
|
||||||
- (stevesk) entropy.c: typo in debug message
|
- (stevesk) entropy.c: typo in debug message
|
||||||
- (djm) ssh-keygen -i needs seeded RNG; report from markus@
|
- (djm) ssh-keygen -i needs seeded RNG; report from markus@
|
||||||
|
|
||||||
$Id: ChangeLog,v 1.2445 2002/09/05 04:35:14 djm Exp $
|
$Id: ChangeLog,v 1.2446 2002/09/05 06:32:02 djm Exp $
|
||||||
|
|
38
TODO
38
TODO
|
@ -18,7 +18,7 @@ Programming:
|
||||||
- Handle changing passwords for the non-PAM expired password case
|
- Handle changing passwords for the non-PAM expired password case
|
||||||
|
|
||||||
- Improve PAM support (a pam_lastlog module will cause sshd to exit)
|
- Improve PAM support (a pam_lastlog module will cause sshd to exit)
|
||||||
and maybe support alternate forms of authenications like OPIE via
|
and maybe support alternate forms of authentications like OPIE via
|
||||||
pam?
|
pam?
|
||||||
|
|
||||||
- Rework PAM ChallengeResponseAuthentication
|
- Rework PAM ChallengeResponseAuthentication
|
||||||
|
@ -42,8 +42,38 @@ Programming:
|
||||||
solutions break scp or leaves processes hanging around after the ssh
|
solutions break scp or leaves processes hanging around after the ssh
|
||||||
connection has ended. It seems to be linked to two things. One
|
connection has ended. It seems to be linked to two things. One
|
||||||
select() under Linux is not as nice as others, and two the children
|
select() under Linux is not as nice as others, and two the children
|
||||||
of the shell are not killed on exiting the shell. Redhat have an excellent
|
of the shell are not killed on exiting the shell.
|
||||||
description of this in their RPM package.
|
A short run-down of what happens:
|
||||||
|
- The shell starts up, and starts its own session. As a side-effect, it
|
||||||
|
gets its own process group.
|
||||||
|
- The child forks off sleep, and because it's in the background, puts it
|
||||||
|
into its own process group. The sleep command inherits a copy of the
|
||||||
|
shell's descriptor for the tty as its stdout.
|
||||||
|
- The shell exits, but doesn't SIGHUP all of its child PIDs like it probably
|
||||||
|
should(?)
|
||||||
|
- The sshd server attempts to read from the master side of the pty, and
|
||||||
|
while there are still process with the pty open, no EOF is produced.
|
||||||
|
- The sleep command exits, closes its descriptor, sshd detects the EOF, and
|
||||||
|
the connection gets closed.
|
||||||
|
Ways we've tried fixing this in sshd, and why they didn't work out:
|
||||||
|
- SIGHUP the sshd's process group.
|
||||||
|
- The shell is in its own process group.
|
||||||
|
- Track process group IDs of all children before we reap them (via an extra
|
||||||
|
field in Session structures which holds the pgid for each child pid), and
|
||||||
|
SIGHUP the pgid when we reap.
|
||||||
|
- Background commands are in yet another process group.
|
||||||
|
- Close the connection when the child dies.
|
||||||
|
- Background commands may need to write data to the connection. Also
|
||||||
|
prematurely truncates output from some commands (scp server, the
|
||||||
|
famous "dd if=/dev/zero bs=1000 count=100" case).
|
||||||
|
Known workarounds:
|
||||||
|
- bash: shopt huponexit on
|
||||||
|
- tcsh: none
|
||||||
|
- zsh: setopt HUP (usually the default setting)
|
||||||
|
(taken from email from Jason Stone to openssh-unix-dev, 5 May 2001)
|
||||||
|
- pdksh: ?
|
||||||
|
This appears to affect NetKit rsh under Linux as well: it behaves the same
|
||||||
|
with 'sleep 20 & exit'.
|
||||||
|
|
||||||
- Build an automated test suite
|
- Build an automated test suite
|
||||||
|
|
||||||
|
@ -103,4 +133,4 @@ PrivSep Issues:
|
||||||
- Cygwin
|
- Cygwin
|
||||||
+ Privsep for Pre-auth only (no fd passing)
|
+ Privsep for Pre-auth only (no fd passing)
|
||||||
|
|
||||||
$Id: TODO,v 1.50 2002/06/25 17:12:27 mouring Exp $
|
$Id: TODO,v 1.51 2002/09/05 06:32:03 djm Exp $
|
||||||
|
|
Loading…
Reference in New Issue