Fabric 2+-SSH-verbindings deur 'n SOCKS-proxy
Gebruik Fabric se ProxyCommand-gateway met 'n SOCKS-vermoënde verbinder terwyl SSH-verifikasie aan die bestemming geheg bly.
Fabric se afgeleë opdragte reis oor SSH. Om daardie SSH-verbinding deur 'n SOCKS-bediener te stuur, gee Fabric 'n verbinder wat SOCKS praat en die bestemming se greurstroom terugstuur.
Die Connection-API wat in Fabric 2 bekend gestel is, aanvaar 'n opdragstring as sy gateway. Fabric gebruik daardie string as 'n ProxyCommand. Met 'n bestaande OpenBSD-versoenbare nc wat sy proxy-opsies ondersteun, kan die konfigurasie so lyk:
from fabric import Connection
connection = Connection(
"app.example.net",
user="deploy",
gateway="nc -X 5 -x proxy.example.net:1080 %h %p",
)Hierdie voorbeeld gebruik die gewone SSH-poort, 22. Die verbinder se -X 5 kies SOCKS5, terwyl -x die proxy-eindpunt aandui. Die gasheer- en poortplekhouers verskaf die SSH-bestemming. Vir 'n publieke SSH-bestemming kan 'n ongeverifieerde eindpunt uit die SOCKS5-proxelys die proxy-adres invul as dit daardie bestemming en poort toelaat. Stel die opdrag op met die opsies van die werklike verbinder wat op die masjien geïnstalleer is; programme met die naam nc bied nie almal dieselfde koppelvlak nie.
Die verbinder loop plaaslik, waar Fabric loop. Die toepassingbediener het nie daardie helper nodig net omdat dit die SSH-bestemming is nie. Sodra die stroom gevestig is, doen Fabric steeds SSH-onderhandeling en verifieer die deploy-rekening op app.example.net. Enige verifikasie wat die SOCKS-bediener vereis, hoort by die verbinder en moet deur hom ondersteun word.
Fabric kan ook 'n ProxyCommand uit SSH-konfigurasie lees. Dit kan gerieflik wees wanneer dieselfde roete deur verskeie SSH-gereedskappe gebruik word. Gebruik een beoogde gateway-definisie vir die verbinding, eerder as om 'n opdragstyl-gateway met 'n aparte spronggasheer-gateway vir dieselfde bestemming te kombineer.
Wanneer die tussenganger 'n SSH-bediener is
'n Fabric-Connection-objek wat as gateway voorsien word, beteken iets anders: Fabric verbind met daardie SSH-gateway en vra 'n kanaal na die finale gasheer. Gebruik daardie vorm vir 'n SSH-spronggasheer. 'n SOCKS-luisteraar is nie 'n SSH-bediener nie, so dit benodig die opdragstyl-verbinder hierbo.
Hierdie vervoerkeuse het ook 'n duidelike beperking. Dit roeteer Fabric se SSH-verbinding. 'n Opdrag wat op die afgeleë gasheer uitgevoer word en later 'n bewaarplek of pakket aflaai, maak 'n nuwe uitgaande verbinding vanaf daardie gasheer, onder daardie program se eie proxy-konfigurasie.