autossh는 항상 오류와 함께 종료됩니다.

autossh는 항상 오류와 함께 종료됩니다.

편의를 위해 별칭을 사용했는데 훌륭하게 작동했습니다 ssh.autossh -M0

하지만 항상 오류와 함께 종료되어 스크립트에 문제가 발생합니다.

예를 들어

ssh me@myserver 'true'      # equivalent to:  autossh -M0 me@myserver 'true'
echo $?     # 1

어떻게 해결할 수 있나요?

(스크립트의 해결 방법은 /usr/bin/ssh대신 이것을 사용하십시오 ssh. 하지만 가능하다면 이 문제를 수정하고 싶습니다.)

답변1

매뉴얼 페이지에서:

"시작 게이트" 시간이 있습니다. 첫 번째 ssh 프로세스가 시작 후 처음 몇 초 내에 실패하면 autossh는 "시작 문 밖으로 나간" 적이 없다고 가정하고 종료합니다. 초기 인증 실패, 연결 등을 처리하기 위한 것입니다. 이 시간의 기본값은 30초이며 조정될 수 있습니다(아래 AUTOSSH_GATETIME 환경 변수 참조).

따라서 AUTOSSH_GATETIME을 0으로 설정하면 문제가 해결됩니다.

AUTOSSH_GATETIME=0 ssh me@myserver 'true'
echo $?     # 0

비밀번호나 패스프레이즈를 입력하지 않는 경우 태그 -f( autossh별칭에 추가할 수 있음)를 사용할 수도 있습니다.

ssh -f me@myserver 'true'
echo $?     # 0

관련 정보