O processo ssh do cliente não termina quando a sessão é desconectada

0

Eu tenho um host que preciso implantar em uma rede para a qual não terei acesso físico por algum tempo, por isso configurei uma conexão ssh reversa persistente a partir de um guia, usando o cron e o script abaixo:

#!/bin/bash

# install with crontab -e
# */1 * * * * /root/scripts/ssh_tunnel.sh > tunnel.log 2>&1

createTunnel() {
  /usr/bin/ssh -i /home/user/cert.pem -N -R 9999:localhost:22 [email protected]
  if [[ $? -eq 0 ]]; then
    echo Tunnel to jumpbox created successfully
  else
    echo An error occurred creating a tunnel to jumpbox. RC was $?
  fi
}

/bin/pidof ssh
if [[ $? -ne 0 ]]; then
  echo Creating new tunnel connection
  createTunnel
fi

O cron job é simplesmente:

crontab -e
*/1 * * * * /root/scripts/ssh_tunnel.sh > tunnel.log 2>&1

Eu preciso que as sessões do ssh sejam restabelecidas automaticamente em caso de interrupção. Atualmente, se o processo sshd no servidor for encerrado, o processo no cliente não será encerrado, com o resultado de que o script não tentará estabelecer uma nova sessão.
Percebo que quando a conexão é iniciada manualmente a partir de um terminal interativo, não há problema, ou seja, o cliente morre junto com o processo do lado do servidor na terminação.

Qualquer ajuda seria apreciada, obrigado.

    
por user1330734 16.08.2017 / 07:31

0 respostas