ExitOnForwardFailure=yes doesn't exit if adress is already in use and no binding adress is specified

Damien Miller djm at mindrot.org
Tue Mar 19 09:49:24 AEDT 2019


On Mon, 18 Mar 2019, Michał Wadas wrote:

> First, let's setup some process that binds to port that we intend to use:
> 
> python -m SimpleHTTPServer 8000

This binds to 0.0.0.0:8000 (I presume you meant port 5000 instead)

> Then try few commands:
> 
> ssh -N -L 5000:localhost:5432 foobar # Fails and hangs
> 
> ssh -o ExitOnForwardFailure=yes -N -L 5000:localhost:5432 foobar # Fails
> and hangs
> 
> ssh -N -L 127.0.0.1:5000:localhost:5432 foobar # Fails and hangs
> 
> ssh -o ExitOnForwardFailure=yes -N -L 127.0.0.1:5000:localhost:5432 foobar
> # Fails and exits

These all bind to 127.0.0.1:5000, a distinct host:port as far as your
TCP/IP stack is concerned. There is no collision here.

Here's a better test:

nc -l ::1 5000 &
nc -l 127.0.0.1 5000 &
ssh -o ExitOnForwardFailure=yes -N -L 5000:localhost:5432 foo

-d


More information about the openssh-unix-dev mailing list