SSH ControlMaster를 올바르게 사용하는 방법

SSH ControlMaster를 올바르게 사용하는 방법

SSH를 통해 원격으로 여러 명령을 실행하는 스크립트가 있습니다. 실행 사이에 다른 작업을 수행하고 싶기 때문에 각 명령을 개별적으로 실행합니다.

그러나 새 명령을 실행할 때마다 SSH 세션을 다시 생성하고 싶지 않습니다. 읽었 -oControlMaster지만 제대로 작동하지 않는 것 같습니다.

내가 실행할 때 :

ssh -oControlMaster=yes -oControlPath=/tmp/test.sock root@host

비밀번호를 입력하면 SSH 세션이 시작됩니다. 종료하면 /tmp/test.sock파일을 찾을 수 없습니다.

내가 무엇을 놓치고 있나요?

답변1

ControlPersist옵션을 사용하면 서버와의 연결을 끊은 후 소켓을 떠날 수 있습니다.

예를 들어, 내 SSH 구성 파일에는 3초 동안 연결을 열어두는 이 조각이 있습니다.

주인 *
   컨트롤 마스터 자동
   ControlPath ~/.ssh/master-socket/%r@%h:%p
   #ControlPath /run/user/%i/sshmasterconn-%C
   #ControlPath ~/.ssh/%r@%h:%p
   제어는 3초 동안 지속됩니다.

답변2

다른 연결에서 이를 사용하려면 기본 연결을 열어야 합니다.

소켓 파일은 기본 연결이 열려 있는 경우에만 사용할 수 있습니다. 기본 연결이 닫히면 소켓 파일이 삭제됩니다. 마스터 연결이 닫히면 열려 있는 "슬레이브" 연결도 모두 닫힙니다.

관련 정보