Tomando o id do processo de ssh do netstat,
lsof -p $pid -a -d 3
mostrará o IP da outra extremidade da conexão. Como ssh pode ser saltado, este pode não ser o local final.
Eu criei o túnel reverso do servidor para o endpoint usando o comando:
ssh -R 127.0.0.1:4000:localhost:81 [email protected]
O túnel foi criado no lado do Endpoint e leva da porta do servidor 4000 para a porta do endpoint 81. Há um serviço escutando nessa porta, mas isso não é importante. Eu fiz isso porque o Endpoint está por trás do NAT e eu precisava ter acesso a ele de fora.
Gostaria de saber se consigo obter o IP do Endpoint no lado do servidor. Houve uma pergunta semelhante:
Como encontrar o IP da fonte de um túnel reverso do SSH?
mas meu caso é específico. Eu não quero inserir comandos manualmente porque haverá muitos túneis reversos para o servidor e eu posso usar apenas a porta à qual o Endpoint está vinculado.
Em outras palavras: como obter o IP do encapsulamento do lado Endpoint utilizando apenas a porta 4000 no lado do servidor? Eu não consigo encontrar nenhuma correlação entre a porta 4000 no servidor com o estabelecido Conexão SSH para fins de túnel.
netstat -plant (no servidor) mostra:
tcp 0 0 127.0.0.1:4000 0.0.0.0:* LISTEN 30307/sshd: user
tcp 0 0 8.8.8.8:22 1.2.3.4:44874 ESTABLISHED 12531/sshd: user
tcp 0 0 8.8.8.8:22 15.16.17.18:44258 ESTABLISHED 30203/sshd: user
tcp 0 0 8.8.8.8:22 22.22.22.22:46696 ESTABLISHED 15639/sshd: user
Como você pode ver, há um serviço escutando na porta 4000 (esta porta é encaminhada para a porta 81 do Endpoint - que não é visível aqui) e três conexões ssh. Um deles serve o túnel. Mas eu não sei qual. 8.8.8.8 é o IP do servidor.