I am using an openSSH server on a privately built distribution. I am can login with an interactive session, use scp and everything is fine except that when I exit the shell of an interactive session or when the copy transfer terminates (scp), sshd hangs forever. The shell process is in the zombie state, which indicates that the openssh process for the connection has not checked the child status. I understand that using a privately built distribution (distribution may be not the adequate terms but I have no other) is most certainly the root cause where some files, privileges, etc. is not set correctly. But I looked everywhere, including the FAQ on opensssh.com and can not find any useful guidance. Any pointers for where to look? Using debug and strace does not help. I can see 2 errors near the end but I am not sure they are real problem or related to my issue. Here is the end of this trace (the write \r correspond to the enter after exit): write(6, "\r", 1) = 1 select(9, [3 4 8], [], NULL, NULL) = 1 (in [8]) rt_sigprocmask(SIG_BLOCK, [CHLD], [TERM CHLD], 8) = 0 rt_sigprocmask(SIG_SETMASK, [TERM CHLD], NULL, 8) = 0 read(8, "\r\n", 16384) = 2 select(9, [3 4 8], [3], NULL, NULL) = 2 (in [8], out [3]) rt_sigprocmask(SIG_BLOCK, [CHLD], [TERM CHLD], 8) = 0 rt_sigprocmask(SIG_SETMASK, [TERM CHLD], NULL, 8) = 0 read(8, 0x7fff2c252970, 16384) = -1 EIO (Input/output error) write(2, "debug2: channel 0: read<=0 rfd 8"..., 41debug2: channel 0: read<=0 rfd 8 len -1 ) = 41 write(2, "debug2: channel 0: read failed\r\n", 32debug2: channel 0: read failed ) = 32 write(2, "debug2: channel 0: close_read\r\n", 31debug2: channel 0: close_read ) = 31 close(8) = 0 write(2, "debug2: channel 0: input open ->"..., 40debug2: channel 0: input open -> drain ) = 40 write(3, "\317\21\213\233\355\n\244`V\264\211\212\307\313\313\213aX\307\324\235\260.H\345T\330_\247\271e\266"..., 48) = 48 write(2, "debug2: channel 0: ibuf empty\r\n", 31debug2: channel 0: ibuf empty ) = 31 write(2, "debug2: channel 0: send eof\r\n", 29debug2: channel 0: send eof ) = 29 write(2, "debug2: channel 0: input drain -"..., 42debug2: channel 0: input drain -> closed ) = 42 select(9, [3 4], [3], NULL, NULL) = 1 (out [3]) rt_sigprocmask(SIG_BLOCK, [CHLD], [TERM CHLD], 8) = 0 rt_sigprocmask(SIG_SETMASK, [TERM CHLD], NULL, 8) = 0 write(3, "\323m\346\231\252\2024\235\272,<@\325\220$q\231\356\321\37\34\272\ndj\377\332\311:?j\360", 32) = 32 select(9, [3 4], [], NULL, NULLExiting on signal 2 debug1: do_cleanup debug1: session_pty_cleanup: session 0 release /dev/pts/0 syslogin_perform_logout: logout() returned an error The read error on fd 8 is probably Ok since I suspect it is the pipe to the shell, which terminated so an error here is probably normal (BTW, this shell is busybox). -- Avis de confidentialit? Les informations contenues dans le pr?sent message et dans toute pi?ce qui lui est jointe sont confidentielles et peuvent ?tre prot?g?es par le secret professionnel. Ces informations sont ? l?usage exclusif de son ou de ses destinataires. Si vous recevez ce message par erreur, veuillez s?il vous plait communiquer imm?diatement avec l?exp?diteur et en d?truire tout exemplaire. De plus, il vous est strictement interdit de le divulguer, de le distribuer ou de le reproduire sans l?autorisation de l?exp?diteur. Merci. Confidentiality notice This e-mail message and any attachment hereto contain confidential information which may be privileged and which is intended for the exclusive use of its addressee(s). If you receive this message in error, please inform sender immediately and destroy any copy thereof. Furthermore, any disclosure, distribution or copying of this message and/or any attachment hereto without the consent of the sender is strictly prohibited. Thank you.