La sesión ssh no se cierra en el script bash

La sesión ssh no se cierra en el script bash

Estoy conectando un sistema y reiniciándolo en un bucle while, sin embargo, la sesión ssh no se cierra, por lo que el script simplemente se bloquea después del primer reinicio. He probado varias formas de cerrarlo, ¿alguna idea? Nunca llego a la "prueba" de 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

restablecer.sh

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

Respuesta1

Lo que puede estar sucediendo es que la sesión remota se pierda cuando usted solicita un reinicio, por lo que el sistema se bloqueará por un tiempo esperando que el sistema remoto responda.

Antes de eso, introduciría sshpassun comando de tiempo de espera, como timeouto timelimitcomo en:

timeout 10s sshpass ...

En cuanto a sshlos servicios, intente evitar el uso de contraseñas y, en su lugar, utilice la autenticación de certificado RSA. No estoy seguro acerca de ese comando sshpass en particular, pero a menudo, si el binario al que se llama no toma precauciones, la contraseña se puede ver pscuando se usa en la línea de comando.

información relacionada