나는 종종 퍼티를 사용하여 Linux로 SSH를 연결합니다. 때로는 ssh를 직접 호출하거나 때로는 "퍼티에서 세션 열기"를 통해 wincp 내에서 퍼티를 호출하기도 합니다.
어떤 경우에는 두 개의 퍼티 터미널을 연결하고 "exit"를 입력하여 그 중 하나를 종료할 때 터미널이 닫히지 않습니다. "로그아웃"이라고 표시되지만 열려 있습니다. 다른 터미널을 "종료"하면 닫힙니다. 하지만 때때로 "exit"를 입력한 직후 터미널이 닫히는 경우가 있습니다.
이에 대한 규칙이 무엇인지 알고 싶습니다.
답변1
ControlMaster
SSH 구성 파일(또는 PuTTY와 동등한 파일)의 옵션을 다음과 같이 설정한 것 같습니다 auto
.
컨트롤 마스터
단일 네트워크 연결을 통해 여러 세션을 공유할 수 있습니다. yes로 설정되면 ssh(1)는 ControlPath 매개변수로 지정된 제어 소켓에서 연결을 수신합니다. 다른 세션은 no(기본값)로 설정된 동일한 ControlPath 및 ControlMaster를 사용하여 이 소켓에 연결할 수 있습니다. 이러한 세션은 새 네트워크 연결을 시작하는 대신 마스터 인스턴스의 네트워크 연결을 재사용하려고 시도하지만 제어 소켓이 존재하지 않거나 수신 대기 중이 아닌 경우 일반 연결로 대체됩니다.
이것을 Ask로 설정하면 ssh(1)이 제어 연결을 수신하지만 ssh-askpass(1)를 사용한 확인이 필요합니다. ControlPath를 열 수 없으면 ssh(1)는 마스터 인스턴스에 연결하지 않고 계속 진행됩니다.
이러한 다중화 연결은 X11 및 ssh-agent(1) 전달을 지원하지만 전달된 디스플레이 및 에이전트는 기본 연결에 속합니다. 즉, 여러 디스플레이 또는 에이전트를 전달할 수 없습니다.
다른 두 가지 옵션은 기회적 다중화를 허용합니다. 기본 연결을 사용하려고 시도하지만 아직 연결이 없으면 새 연결을 만드는 것으로 대체됩니다. 옵션은 자동 및 자동 요청입니다. 후자는 요청 옵션과 마찬가지로 확인이 필요합니다.
즉, 첫 번째 세션이 열린 후 다른 세션은 추가 세션을 여는 대신 동일한 네트워크 연결을 사용하여 대역폭을 덜 소비하고 잠재적으로 대기 시간을 줄입니다.
그러나 이는 다른 모든 세션이 종료되기 전에 연결을 끊지 않고는 첫 번째 "기본" 세션이 연결을 닫을 수 없음을 의미하기도 합니다. 따라서 다른 모든 세션이 종료될 때까지 열린 상태로 유지됩니다. (첫 번째 연결을 실행하는 puTTY 작업을 종료하는 등 어떻게든 강제로 닫으면 다른 모든 세션도 닫히는 것을 볼 수 있습니다.)