`ssh [...] sleep 3` (com sshpass) nunca feche

`ssh [...] sleep 3` (com sshpass) nunca feche

Abro um túnel SSH programaticamente, com:

sshpass -p "my_password" ssh -fN -o StrictHostKeyChecking=no -o ExitOnForwardFailure=yes remote_user@remote_server.tld -L 13306:127.0.0.1:3306 sleep 3

e funciona conforme o esperado, mas não fecha após 3 segundos de inatividade.

Eu pego o SSH PID e mato explicitamente quando a conexão é finalizada; mas prefiro a sleepversão, se puder fechar o túnel automaticamente.

O uso para sshpassmanter o túnel aberto ou estou fazendo algo errado?

Responder1

Você está usando

-f

Solicita que o ssh vá para segundo plano antes da execução do comando. Isso é útil se o ssh solicitar senhas ou frases secretas, mas o usuário quiser isso em segundo plano. Isso implica -n. A maneira recomendada de iniciar programas X11 em um local remoto é com algo como ssh -f host xterm.

e

-N

Não execute um comando remoto. Isso é útil apenas para encaminhar portas.

Que fica em segundo plano antes de executar um comando (que é suprimido). Portanto, fica em segundo plano. O sleepnunca é executado e espera para ser morto.

informação relacionada