ssh: ProxyCommand via conexão ControlMaster persistente

ssh: ProxyCommand via conexão ControlMaster persistente

Eu tenho dois servidores middlee remote. middleé usado como um proxy para acessar remote. Eu configurei middlea configuração ssh de para que ele preserve as conexões remotevia ControlMaster, como segue

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

Eu criei uma conexão persistente de middlepara remote. Isso é conveniente porque a autenticação remoteé complexa.

Gostaria de configurar minha configuração ssh local para poder ssh de localhost para remotevia middle,reutilizando a conexão criada acima. Posso fazer isso manualmente como ssh -t middle ssh remote, mas não consigo descobrir uma maneira de fazer a mesma coisa usando a opção ProxyCommand, o que é especialmente irritante se eu quiser copiar um arquivo para remote.

ProxyCommands que não funcionam incluem

  • ssh middle -W remote:22(não reutiliza conexão)
  • ssh middle -t remote(vai até um shell, confundindo meu cliente ssh local, que espera falar com sshd, não com um shell)

Responder1

Acho que você entendeu mal todo o mecanismo ControlMaster no ssh. A ideia é que a conexão seja reaproveitada no SISTEMA LOCAL – ou seja, no servidor “intermediário”. Então, em essência, para reutilizar a conexão, você precisaria invocar o cliente ssh no "meio". Assim:

ssh meio "ssh remoto"

Isso conectará você primeiro ao "meio" e, em seguida, iniciará um cliente ssh para conectá-lo ao "remoto". A segunda conexão irá, com a configuração correta do ControlMaster, reutilizar a conexão existente e persistente.

informação relacionada