sessão ssh não fecha no script bash

sessão ssh não fecha no script bash

Estou sshing para um sistema e reinicializando-o em um loop while, porém a sessão ssh não fecha, então o script fica travado após a primeira reinicialização. Eu tentei várias maneiras de fechá-lo, alguma ideia? Eu nunca chego ao "teste" do eco.

#!/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

redefinir.sh

#! /bin/sh
if [  -e /dev/ttyUSB2 ]  && [  -e /dev/ttyUSB5 ]; then {
reboot -f
}
fi

Responder1

O que pode estar acontecendo é que a sessão remota foi perdida enquanto você solicita uma reinicialização e, portanto, o sistema travará por algum tempo aguardando a resposta do sistema remoto.

Eu apresentaria antes disso sshpassum comando de tempo limite, como timeoutou timelimitem:

timeout 10s sshpass ...

Quanto aos sshserviços, tente evitar o uso de senhas e, em vez disso, use a autenticação por certificado RSA. Não tenho certeza sobre esse comando sshpass específico, mas muitas vezes, se o binário que está sendo chamado não tomar precauções, a senha poderá ser vista psquando usada na linha de comando.

informação relacionada