Hi,

I'm having a small problem when using ProxyCommand and
ExitOnForwardFailure in combination with OpenSSH 5.1 under Ubuntu
8.04.

In order to enable multihop scp and port forwarding, I have enabled
automatic public key authenticated tunneling from hostA to hostC via
hostB using ProxyCommand in my private .ssh/config file on hostA.

:

host hostB
user X

hostC
ProxyCommand ssh hostB nc hostC 22




Now, on hostA, I want to forward local port 3333 to port 5433 on hostC
from a script using:

ssh -x -N -L 3333:hostC:5433 -o BatchMode=yes -o
ExitOnForwardFailure=yes X@hostC

That works fine, and I now have two processes:


31292 ssh -x -N -L 3333:hostC:5433 -o BatchMode=yes -o
ExitOnForwardFailure=yes X@hostC
31293 ssh hostB nc hostC 22

I assume the second is started by the first to forward the tunnel via
hostB. I can use the local port 3333 to connect to the server running
on port 5433 on hostC. So far so good.

If I kill process 31292 it will also terminate 31293 and the TCP
connections will eventually shut down fine.


if I instead leave the first ssh tunnel running and issue the tunnel command,

ssh -x -N -L 3333:hostC:5433 -o BatchMode=yes -o
ExitOnForwardFailure=yes X@hostC

a second time, I get the following messages (ssh pid=31923):

bind: Address already in use
channel_setup_fwd_listener: cannot listen to port: 3333
Could not request local forwarding.

ssh (pid 31923) exits as can be expected since I specified the
ExitOnForwardFailure=yes option. However, this time, ssh doesn't kill
the ssh sub process doing the forwarding via hostB, and I'm left with
a leftover ssh process:

31924 ssh hostB nc hostC 22

I guess this is not a huge issue, and I'm sure I can come up with some
workaround, but it currently creates a few problems in my scripts. Is
this a bug, or is this behavior normal?

Thanks,

Lars
_______________________________________________
openssh-unix-dev mailing list
openssh-unix-dev@mindrot.org
https://lists.mindrot.org/mailman/li...enssh-unix-dev