Eu tenho dois servidores middle
e remote
. middle
é usado como um proxy para acessar remote
. Eu configurei middle
a configuração ssh de para que ele preserve as conexões remote
via ControlMaster, como segue
Host remote ControlMaster auto ControlPath ~/.ssh/%r@%h:%p ControlPersist yes
Eu criei uma conexão persistente de middle
para remote
. Isso é conveniente porque a autenticação remote
é complexa.
Gostaria de configurar minha configuração ssh local para poder ssh de localhost para remote
via 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.