Un escoitador SOCKS local é útil nalgúns redes e está ausente noutras. OpenSSH pode escoller un comando de proxy de forma condicional, sen que esa escolla se aplique a todos os servidores.

Para OpenSSH coa forma OpenBSD de nc, unha configuración de cliente ilustrativa é:

Host work-server
    HostName ssh.example.net
    User alex

Match originalhost work-server exec "nc -z -w 1 127.0.0.1 1080"
    ProxyCommand nc -X 5 -x 127.0.0.1:1080 %h %p

Match all

originalhost limita a comprobación ao nome indicado na liña de ordes de SSH. exec coincide cando o seu comando remata correctamente. O Match all final pecha ese ámbito condicional para os axustes seguintes.

Isto supón que ningún axuste anterior aplicable xa escolleu un comando de proxy ou unha ruta de salto en conflito. SSH adoita usar o primeiro valor obtido para unha opción de configuración, así que un valor predeterminado amplo na parte superior pode impedir que unha condición posterior teña o efecto esperado.

Un socket que escoita é unha promesa modesta

A proba comproba o acceso TCP a un porto local. Non completa a negociación SOCKS, non establece a conexión de destino desexada nin demostra que programa posúe ese porto. O escoitador tamén pode desaparecer despois da comprobación.

O tempo de espera mantén acoutada unha proba fallida. As opcións mostradas pertencen á interface nc de OpenBSD; outros programas con ese mesmo nome de ficheiro poden expoñer opcións distintas.

Cando a condición non coincide, este exemplo deixa a conexión sen este ProxyCommand, o que permite a súa ruta habitual. Iso só é axeitado cando se permite o acceso directo. Unha política de proxy obrigatoria non debería usar unha comprobación de dispoñibilidade como permiso para escapar a outra ruta.

O nome de servidor SSH de destino e as comprobacións de chave de servidor seguen identificando o servidor de destino. Escoller un axudante de transporte non é motivo para aceptar unha chave de servidor inesperada.

Artigos relacionados