최근에 종종 SSH 클라이언트의 ControlMaster 기능을 사용하고 있습니다.이 기능을 사용하면 동일한 원격 시스템으로 여러 쉘 및 포트 전달에 단일 SSH-TCP 연결을 사용할 수 있습니다. 이것에 대한 가장 성가신 것은 열린 첫 번째 셸 프로세스가 자동으로 ControlMaster가된다는 것입니다. 즉,이 프로세스가 종료되면 제어 마스터 연결을 사용하는 다른 모든 셸 및 포트 전달을 사용할 수 없게됩니다.
원격 시스템에 대한 첫 번째 ssh 명령이 ControlMaster 연결을 사용하는 연결이있는 한 연결을 유지하는 추가 백그라운드 프로세스를 생성 할 때 정말로 원합니다. 사이. 이상적으로 백그라운드 ControlMaster 프로세스는 새 쉘 또는 포트 전달에서 ControlMaster를 사용하기 전에 일정 시간 동안 기다렸다가 마지막으로 종료하도록 구성 할 수도 있습니다.
ssh 클라이언트가 그런 일을 할 수있는 방법이 있습니까? ssh를 사용하여 첫 번째 셸을 만들기 전에 이러한 연결을 수동으로 만들 수 있다는 것을 알고 있지만 그렇지 않은 경우 반드시 매번 잊어 버릴 것이므로 명시 적으로 자동으로 발생하기를 원합니다.
래퍼 스크립트를 사용하면 .ssh / config의 원격 서버 이름에 대해 구성된 속기를 사용하고 ControlMaster 소켓이 USERNAME @ NETWORK_NAME : NETWORK_PORT를 이름으로 사용하여 생성되기 때문에 쉽지 않습니다. 따라서 래퍼는 의도 한대로 작동하려면 .config / ssh를 완벽하게 이해해야합니다.