ssh: 지속적인 ControlMaster 연결을 통한 ProxyCommand

ssh: 지속적인 ControlMaster 연결을 통한 ProxyCommand

middle두 대의 서버 가 있고 remote. middle에 액세스하기 위한 프록시로 사용됩니다 remote. 다음과 같이 ControlMaster를 통한 middle연결을 유지하도록 의 ssh 구성을 설정했습니다.remote

Host remote ControlMaster auto ControlPath ~/.ssh/%r@%h:%p ControlPersist yes

middle에서 까지 지속적인 연결을 만들었습니다 remote. 인증이 remote복잡하기 때문에 편리합니다.

remotelocalhost에서 via 로 SSH를 연결할 수 있도록 로컬 SSH 구성을 설정하고 싶습니다 middle.위에서 만든 연결을 재사용. 처럼 수동으로 이 작업을 수행할 수 있지만 ssh -t middle ssh remoteProxyCommand 옵션을 사용하여 동일한 작업을 수행하는 방법을 찾을 수 없습니다. 이는 파일을 remote.

작동하지 않는 ProxyCommand에는 다음이 포함됩니다.

  • ssh middle -W remote:22(연결을 재사용하지 않음)
  • ssh middle -t remote(쉘로 끝까지 이동하여 쉘이 아닌 sshd와 통신할 것으로 예상되는 로컬 SSH 클라이언트를 혼란스럽게 합니다)

답변1

내 생각에 당신은 SSH의 ControlMaster 메커니즘 전체를 오해하고 있는 것 같습니다. 아이디어는 연결이 로컬 시스템, 즉 "중간" 서버에서 재사용된다는 것입니다. 따라서 본질적으로 연결을 재사용하려면 "중간"에서 SSH 클라이언트를 호출해야 합니다. 이와 같이:

SSH 중간 "ssh 원격"

그러면 먼저 "중간"에 연결되고 거기에서 SSH 클라이언트가 실행되어 "원격"에 연결됩니다. 두 번째 연결은 올바른 ControlMaster 구성을 사용하여 기존의 지속적인 연결을 재사용합니다.

관련 정보