Quando você usa ProxyCommand , sua máquina local faz a conexão com o host de destino. Como você deseja criar a conexão do meio para o alvo, você não deve usá-lo (ou não deve usá-lo com nc ).
Eu não usaria ForwardAgent , pois não é totalmente seguro (o usuário root na máquina do meio pode codificar dados usando sua chave usando ssh-agent em sua máquina local).
Portanto, uma solução possível é executar o comando ssh na máquina do meio para segmentar a máquina dentro de seu ProxyCommand na máquina local. Por exemplo:
ssh bar@doesnt_matter_host_here -o ProxyCommand='ssh foo@middle_server "ssh [email protected] nc localhost 22"'
Você pode configurar um host chamado "www_over_middle" com esse ProxyCommand no seu ~/.ssh/config :
Host www_over_middle
User bar
ProxyCommand ssh foo@middle_server "ssh [email protected] nc localhost 22"
E então:
ssh www_over_middle