Russell Harmon
2008-Dec-24 09:38 UTC
Port forwarding using the client of a multiplexed connection.
I am trying to set up port forwarding using the client of a multiplexed connection, but the client is dying. The connection paramaters I am using are as follows: for the master: /usr/bin/ssh -T -n -N -o ControlMaster=yes -o ControlPath=/var/run/autossh/control-%r@%h-%p.sock -o ConnectionAttempts=3 -o BatchMode=yes -o EscapeChar=none -o ExitOnForwardFailure=yes -o ServerAliveInterval=15 -o ForwardAgent=no -c arcfour -2 -x user at host.com for the client: /usr/bin/ssh -T -n -N -o ControlMaster=no -o ControlPath=/var/run/autossh/control-%r@%h-%p.sock -o ConnectionAttempts=3 -o BatchMode=yes -o EscapeChar=none -o ExitOnForwardFailure=yes -o ServerAliveInterval=15 -o ForwardAgent=no -R 5900:address:5900 -R 5901:address:5901 -c arcfour -2 -x user at host.com The master (this is only the part output when I start the client): debug3: fd 6 is not O_NONBLOCK debug3: ssh_msg_recv entering debug3: ssh_msg_send: type 2 debug3: ssh_msg_recv entering debug3: muxserver_accept_control: receiving 0 env vars debug2: muxserver_accept_control: accepted tty 0, subsys 0, cmd debug2: muxserver_accept_control: got fds stdin 7, stdout 8, stderr 9 debug3: ssh_msg_send: type 2 debug2: fd 7 setting O_NONBLOCK debug2: fd 8 setting O_NONBLOCK debug2: fd 9 setting O_NONBLOCK debug2: fd 6 setting O_NONBLOCK debug1: channel 0: new [client-session] debug3: muxserver_accept_control: channel_new: 0 debug2: channel 0: send open debug2: callback start debug2: client_session2_setup: id 0 debug2: channel 0: request shell confirm 1 debug2: callback done debug2: channel 0: open confirm rwindow 0 rmax 32768 debug2: channel 0: rcvd adjust 2097152 debug2: channel_input_confirm: type 99 id 0 debug2: shell request accepted on channel 0 debug2: channel 0: read<=0 rfd 7 len 0 debug2: channel 0: read failed debug2: channel 0: close_read debug2: channel 0: input open -> drain debug2: channel 0: ibuf empty debug2: channel 0: send eof debug2: channel 0: input drain -> closed debug1: client_input_channel_req: channel 0 rtype exit-status reply 0 debug2: channel 0: rcvd eof debug2: channel 0: output open -> drain debug2: channel 0: obuf empty debug2: channel 0: close_write debug2: channel 0: output drain -> closed debug2: channel 0: rcvd close debug3: channel 0: will not send data after close debug2: channel 0: send close debug2: channel 0: is dead debug2: channel 0: garbage collecting debug1: channel 0: free: client-session, nchannels 1 debug3: channel 0: status: The following connections are open: #0 client-session (t4 r0 i3/0 o3/0 fd -1/-1 cfd 6) debug3: channel 0: close_fds r -1 w -1 e 9 c 6 The client: debug1: Reading configuration data /etc/ssh/ssh_config debug3: ssh_msg_send: type 2 debug3: ssh_msg_recv entering debug3: ssh_msg_send: type 2 debug3: ssh_msg_recv entering debug2: Received EOF from master debug2: Received exit status from master 0 Thanks for any help -Russell Harmon
Peter Stuge
2008-Dec-24 15:39 UTC
Port forwarding using the client of a multiplexed connection.
Hi Russell, Russell Harmon wrote:> I am trying to set up port forwarding using the client of a > multiplexed connection, but the client is dying. > > The connection paramaters I am using are as follows: > for the master: /usr/bin/ssh -T -n -N .. > for the client: /usr/bin/ssh -T -n -N ....> The master (this is only the part output when I start the client):..> debug2: muxserver_accept_control: got fds stdin 7, stdout 8, stderr 9..> debug2: shell request accepted on channel 0 > debug2: channel 0: read<=0 rfd 7 len 0 > debug2: channel 0: read failed > debug2: channel 0: close_read > debug2: channel 0: input open -> drain > debug2: channel 0: ibuf empty > debug2: channel 0: send eof > debug2: channel 0: input drain -> closed..> The client:..> debug2: Received EOF from master > debug2: Received exit status from master 0This is a bit of a wild guess, but does it work if you run the client without -T -N ? It seems the server is trying to read from the client stdin even though -T -N is given, and whey they don't return data the server closes down the client. I'm not sure there should be a shell request when using -T -N.. //Peter