Eu tenho duas máquinas, cliente e servidor.
O cliente (que está protegido por um firewall corporativo) abre um túnel SSH reverso para o servidor, que possui um endereço IP acessível ao público, usando este comando:
ssh -nNT -R0: host local: 2222 insecure@server.example.com
No OpenSSH 5.3+, a 0
ocorrência logo após os -R
meios "escolhe uma porta disponível" em vez de pedir explicitamente uma. A razão pela qual estou fazendo isso é porque não quero escolher uma porta que já esteja em uso. Na verdade, existem muitos clientes por aí que precisam configurar túneis semelhantes.
O problema neste momento é que o servidor não sabe qual cliente é qual. Se queremos nos conectar novamente a um desses clientes (via host local), como sabemos qual porta se refere a qual cliente?
Estou ciente de que o ssh relata o número da porta para a linha de comando quando usado da maneira acima. No entanto, eu também gostaria de usar o autossh para manter as sessões vivas. O autossh executa seu processo filho via fork / exec, presumivelmente, para que a saída do comando ssh real seja perdida no éter.
Além disso, não consigo pensar em outra maneira de obter a porta remota do cliente. Assim, eu estou querendo saber se existe uma maneira de determinar esta porta no servidor.
Uma idéia que tenho é de alguma forma usar / etc / sshrc, que é supostamente um script que roda em todas as conexões. No entanto, não sei como obter as informações pertinentes aqui (talvez o PID do processo sshd específico que lida com essa conexão?) Adoraria alguns indicadores.
Obrigado!