유사한 명령에서 ssh <destination> true
ssh는 대상에서 명령을 실행한 true
다음 세션을 종료합니다. 런타임 시 ssh <destination> exit
세션 종료를 시작하는 것은 무엇입니까? 다른 명령과 마찬가지로 ssh 프로그램 자체입니까, 아니면 exit
대상이 실행하는 명령 자체입니까?
SSH 매뉴얼에는 다음과 같이 나와 있습니다.The session terminates when the command or shell on the remote machine exits and all X11 and TCP connections have been closed.
답변1
exit
원격 셸에서 실행되는 명령은 해당 셸을 종료합니다. 실행 시 true
원격 셸은 더 이상 실행할 명령이 없기 때문에 종료되지만 exit
이후에 추가 명령이 있어도(모든 스크립트에서와 마찬가지로) 종료됩니다.
SSH 세션의 간단한 경우오직터널을 설정하지 않거나 연결 공유를 사용하지 않고 일련의 명령을 실행하는 경우, 세션은 관계없이 원격 셸이 종료될 때 종료됩니다.어떻게원격 셸이 종료됩니다( exit
일부 오류, 신호 수신 HUP
또는 단순히 스크립트 끝에 도달하여).
설명서에는 "[...] 및 모든 X11 및 TCP 연결이 닫혀 있습니다"라고 나와 있습니다. 이것은 의미한다연결하다원격 때문에 종료되지 않을 수도 있습니다.껍데기종료되었습니다. 예를 들어 ssh -M
및 ssh -S
(또는 , 및 참조 ) ControlMaster
의 설정을 사용하여 연결 공유를 사용할 때 이런 일이 발생합니다 . SSH 터널링은 SSH 세션이 명시적으로 닫힐 때까지 활성 상태를 유지한다고 생각합니다.~/.ssh/config
man ssh
man ssh_config
SSH 연결을 실제로 종료하려면 다음을 보낼 수 있습니다.exit
제어 명령사용 ssh -O exit user@host
. 이렇게 하면 공유에 대한 모든 SSH 세션이 종료됩니다 user@host
.