Назад | Перейти на главную страницу

SSH exitOnForwardFailure = yes не работает для локальных перенаправлений (-L)

Я хочу использовать ExitOnForwardFailure ssh, но похоже, что он не работает:

$ ssh -f -L 8080:localhost:22 -o ExitOnForwardFailure=yes root@server.com "sleep 60" ; sleep 3; ps xu|grep ssh
bind: Address already in use
halfgaar     780086  0.0  0.0  51432   728 ?        Ss   12:32   0:00 ssh -f -L 8080:localhost:22 -o ExitOnForwardFailure=yes root@server.com sleep 60

Также, если я не буду форкнуть (-f), Я просто получаю оболочку для сервера:

halfgaar@<localmachine>: ~
$ ssh -L 8080:localhost:22 -o ExitOnForwardFailure=yes root@server.com
bind: Address already in use
Linux <remoteserver> 4.9.0-8-686-pae #1 SMP Debian 4.9.144-3 (2019-02-02) i686

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Fri May 31 12:39:27 2019 from 84.22.107.110
root@<remoteserver>: ~
#

Он действительно работает правильно, когда я пытаюсь сделать обеспечить регресс туннель (-R).

Ubuntu 18.04, SSH 7.6p1-4ubuntu0.3.

Похоже, он использует ipv4 для одной части и ipv6 для другой. Когда я использую -4, Я правильно получаю:

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

Я также подал отчет об ошибке, потому что это действительно похоже на ошибку.