명령 오류로 인해 SSH 클라이언트가 종료됩니다.

명령 오류로 인해 SSH 클라이언트가 종료됩니다.

저는 Debian이나 Windows 및 Putty를 사용하여 SSH를 통해 원격 Debian 시스템에 연결하고 있습니다. 원격 시스템(Debian)은 내가 지금까지 알고 있는 다른 SSH 서버와 다르게 동작합니다.

SSH 콘솔에서 실패한 명령을 실행할 때마다 연결이 닫히고 SSH 클라이언트가 종료됩니다.

한 가지 예:

  1. 원격 컴퓨터에 로그인합니다.
  2. 나는 cd /not-existing-directory를 실행합니다.
  3. SSH 클라이언트는 서버가 연결을 닫았다고 보고합니다.

이 행동의 이유는 무엇일까요? 어떤 조치를 취할 수 있나요?

답변1

원격 셸이 bash(또는 Bourne과 유사한)인 경우 errexit이 옵션이 켜져 있을 수 있습니다. 이 옵션은 "간단한" 명령(예: cd)이 오류를 반환하는 경우 즉시 종료하도록 셸에 지시합니다.

로그인한 후 다음 명령을 실행하여 확인합니다.

echo "$-" | grep e

해당 옵션을 켜면 다음이 포함된 줄이 표시됩니다 e. 그렇지 않으면 텍스트가 반환되지 않습니다.

또는 다음을 실행하세요.

set -o|grep errexit

이 옵션이 켜져 있으면 다음이 표시됩니다.

errexit         on

그렇지 않은 경우 다음이 표시됩니다.

errexit         off

이 옵션을 끄려면 다음을 실행하세요.

set +o errexit

또는

set +e

자세한 내용은 errexit다음을 참조하세요.쉘 명령 언어 - 설정

관련 정보