A variante 1 será autenticada duas vezes. Uma vez com o comando proxy para estabelecer a conexão e novamente com o comando ssh original. Você também pode fazer Varient 1 simplesmente netcat %h %p
e usar os parâmetros do Host para realizar a mesma coisa que você quer do seu comando ssh.
Host target_host
HostName 172.16.0.1
LogLevel QUIET
ForwardX11 no
ProxyCommand netcat %h %p
No entanto, mesmo com isso, seria necessário um suporte para netcat e um processo extra como parte da conexão.
A variante 2 faz a mesma coisa que netcat, mas internamente e não aloca um pty, embora isso possa ser substituído para ser exatamente como a variante 1, se desejado. Também evita qualquer configuração no envio de agente como o jumphost.
As Variantes 1 e 2 estão usando o ProxyCommand, que está lá como uma maneira genérica de automatizar a configuração da conexão. Principalmente essas variantes existem porque o ProxyJump só existia depois dele. Mas o ProxyCommand pode ser usado para fazer coisas mais avançadas com a configuração da conexão. A documentação cita exemplos de como usá-lo para configurar proxies HTTP CONNECT para encaminhar sua conexão.
A variante 3 usa ProxyJump, que é essencialmente um proxy TCP integrado e é mais semelhante à Variant 2, mas permite uma manufatura de encadeamento mais simples e mais rigorosa. Sem fazer o mesmo, ficaria assim:
Host jumphost2
ProxyCommand ssh -W %h:%p jumphost1
Host server
ProxyCommand ssh -W %h:%p jumphost2
Mas com o ProxyJump ficaria assim:
Host server
ProxyJump jumphost2,jumphost1