
Estou tentando pesquisar no Google um método para conseguir isso, mas não consigo encontrar um.
Basicamente, criei um túnel SSH para vários hosts remotos por meio de um host bastião usando um comando como este.
ssh -L 9000:ourprodserver.domain.com:1521 \
-L 9001:otherprodserver.domain.com:1521 \
-A -l [email protected] somebastionhost.domain.net
Agora, como posso saber o mapeamento dos detalhes da conexão para a porta local sempre que o túnel estiver ativo.
ou seja, quero poder criar uma lista deste formulário.
L_port Remote_host R_port
9000 ourprodserver.domain.com 1521
9001 otherprodserver.domain.com 1521
É possível?
Responder1
Existe uma solução simples, mas listará apenas osatualmente ativoconexões de túnel: está usando a sequência de escape ssh~#
Se o túnel não for usado, ele não será mostrado.
Na ajuda (mostrada com ~? dentro de uma conexão ssh ativa):
~# - lista conexões encaminhadas
A saída de exemplo será:
user@somebastionhost$ ~#
The following connections are open:
#4 client-session (t4 r0 i0/0 o0/0 fd 9/10 cc -1)
#5 direct-tcpip: listening port 9000 for ourprodserver.domain.com port 1521, connect from 127.0.0.1 port 48954 to 127.0.0.1 port 9000 (t3 nr0 i0/0 o0/0 fd 12/12 cc -1)
No lado do cliente, você pode ter uma ideia dos túneis abertos, mesmo os inativos, listando os soquetes TCP abertos:
lsof -n -p <pidof-ssh-client> -a -iTCP -a -sTCP:LISTEN
Embora isso não responda totalmente à sua pergunta, pode ser um ponto de partida.