En lokal SOCKS-lytter er nyttig på enkelte nettverk og fraværende på andre. OpenSSH kan velge en proxykommando betinget, uten at valget gjelder for hver vert.

For OpenSSH med OpenBSD-formen av nc er en illustrerende klientkonfigurasjon:

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 begrenser kontrollen til navnet som er oppgitt på SSH-kommandolinjen. exec samsvarer når kommandoen avsluttes med suksess. Den avsluttende Match all avslutter dette betingede omfanget for påfølgende innstillinger.

Dette forutsetter at ingen tidligere gjeldende innstilling allerede har valgt en motstridende proxykommando eller hopprute. SSH bruker vanligvis den første verdien som oppnås for en innstilling, så en bred standard øverst kan hindre en senere betingelse i å få den forventede virkningen.

En lyttende socket er et beskjedent løfte

Testen kontrollerer TCP-tilgang til en lokal port. Den fullfører ikke SOCKS-forhandlingen, oppretter ikke den ønskede destinasjonsforbindelsen og beviser ikke hvilket program som eier porten. Lytteren kan også forsvinne etter kontrollen.

Tidsavbruddet holder en mislykket test avgrenset. Alternativene som vises, tilhører OpenBSD nc-grensesnittet; andre programmer med samme filnavn kan tilby andre alternativer.

Når betingelsen ikke samsvarer, lar dette eksempelet forbindelsen være uten denne ProxyCommand, og tillater dermed dens vanlige rute. Det er bare passende når direkte tilgang er tillatt. En obligatorisk proxypolicy bør ikke bruke en tilgjengelighetstest som tillatelse til å unnslippe til en annen rute.

Destinasjonens SSH-vertsnavn og vertsnøkkelkontroller identifiserer fortsatt destinasjonsserveren. Å velge en transporthelper er ikke grunn til å godta en uventet vertsnøkkel.

Relaterte artikler