I need to ssh to multiple hosts having this configuration:
Protocol 2 ExitOnForwardFailure yes ServerAliveCountMax 1 ServerAliveInterval 3 TCPKeepAlive no ControlMaster auto ControlPath ~/.ssh/sockets/%C ControlPersist 10m Host targetA HostName <server-ip> User user-name LocalForward 8888 localhost:8888 LocalForward 3306 localhost:3306 Host targetB HostName <server-ip> User user-name LocalForward 8888 localhost:8888 LocalForward 3306 localhost:3306
After connecting to host
targetA and then trying to connect to
targetB I get this error:
bind [127.0.0.1]:8888: Address already in use channel_setup_fwd_listener_tcpip: cannot listen to port: 8888
Therefore I need to kill existing connections to be available to connect to
targetB and use the same ports
3306, something like this:
lsof -ti:8888,3306 | xargs -L1 kill -9
ssh -O exit targetA
This works but would like to know if there is a way to simplify this process, probably with something in
~.ssh/config, and continue to have the
ControlPath options besides still using same ports.
Tried already something like
ProxyCommand sh -c "script.sh; ssh %h %p" without success.