bash 스크립트에서 SSH 세션이 닫히지 않음

bash 스크립트에서 SSH 세션이 닫히지 않음

시스템에 SSH를 연결하고 잠시 동안 재부팅하고 있지만 SSH 세션이 닫히지 않아 첫 번째 재부팅 후 스크립트가 중단됩니다. 닫으려고 다양한 방법을 시도해 봤는데 어떤 생각이 드나요? 나는 에코 "테스트"에 도달하지 않습니다.

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

재설정.sh

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

답변1

문제가 될 수 있는 것은 재부팅을 요청하면서 원격 세션이 손실되어 원격 시스템이 응답할 때까지 시스템이 잠시 멈추는 것입니다.

그 전에 다음 과 sshpass같은 시간 초과 명령을 소개하겠습니다 .timeouttimelimit

timeout 10s sshpass ...

서비스 의 경우 ssh비밀번호 사용을 피하고 대신 RSA 인증서 인증을 사용하십시오. 특정 sshpass 명령에 대해서는 잘 모르겠지만 호출되는 바이너리가 예방 조치를 취하지 않는 경우 ps명령줄에서 사용할 때 비밀번호를 볼 수 있는 경우가 많습니다.

관련 정보