Você está solicitando que ele escute na porta 22 local e encaminhe as conexões para a porta 8090 de um sistema remoto. Você não pode fazer isso, porque a porta 22 local já foi acessada pelo servidor SSH local.
Eu acho que o que você está procurando é encaminhamento remoto. Substituindo -L 22:localhost:8090
por-R 8090:localhost:22
informará o host remoto para escutar na porta 8090 e encaminhar solicitações para o servidor SSH.
Se você estiver deixando a conexão em execução para poder entrar mais tarde em um site remoto, precisará garantir que a conexão não atinja o tempo limite devido à inatividade adicionando as opções relevantes ( -o TCPKeepAlive=yes
ou-o ServerAliveInterval=30
)
Então você vai acabar com algo como:
ssh -N user@my_server -R 8090:localhost:22 -o ServerAliveInterval=30
Além disso, se um dos saltos de rede entre você e o servidor estiver inativo a qualquer momento, a conexão será interrompida, apesar das opções KeepAlive que você especificar, portanto, você pode adicionar esse comando ao inittab ou procurar no pacote daemontools ou na sua distribuição. equivalente, para que ele sempre inicie na inicialização e seja reiniciado quando for encerrado por algum motivo que não seja o desligamento do sistema (ou você pode executá-lo a partir de um shell script que executa loops infinitamente, mas init ou daemontools são soluções mais limpas).