ssh session não fecha no script bash

1

Estou navegando para um sistema e reinicializando-o em um loop while, no entanto, a sessão ssh não fecha, portanto, o script é interrompido após a primeira reinicialização. Eu tentei várias maneiras de fechá-lo, alguma idéia? Eu nunca chego ao eco "teste".

#!/bin/bash
while true
do
echo "Executing SSH session to 192.168.1.1..."
sshpass -p "pass" ssh -o StrictHostKeyChecking=no [email protected] << ! 
./reset.sh 
! 
echo "test"
sleep 20
done

reset.sh

#! /bin/sh
if [  -e /dev/ttyUSB2 ]  && [  -e /dev/ttyUSB5 ]; then {
reboot -f
}
fi
    
por Paul 13.04.2017 / 14:01

1 resposta

2

O que pode acontecer é a sessão remota ser perdida quando você está pedindo uma reinicialização, e assim o sistema irá aguardar algum tempo esperando o sistema remoto responder.

Gostaria de apresentar antes que sshpass um comando de tempo limite, como timeout ou timelimit como em:

timeout 10s sshpass ...

Quanto a ssh services, tente evitar o uso de senhas e, em vez disso, use a autenticação de certificado RSA. Não tenho certeza sobre esse comando sshpass específico, mas muitas vezes, se o binário sendo chamado não tomar precauções, a senha pode ser vista com ps quando usado na linha de comando.

    
por 13.04.2017 / 14:11

Tags