Dem Fabric seng Fernkommandoen reesen iwwer SSH. Fir déi SSH-Verbindung duerch e SOCKS-Server ze leeden, gitt dem Fabric en Connector, dee SOCKS schwätzt an de Bytestroum vum Zil zeréckgëtt.

D'Connection-API, déi an Fabric 2 agefouert gouf, akzeptéiert eng Kommandoszeechen als säin gateway. Fabric benotzt dës Zeechen als ProxyCommand. Mat engem existéierenden OpenBSD-kompatiblen nc, deen seng Proxy-Optiounen ënnerstëtzt, kann d'Konfiguratioun esou ausgesinn:

from fabric import Connection

connection = Connection(
    "app.example.net",
    user="deploy",
    gateway="nc -X 5 -x proxy.example.net:1080 %h %p",
)

Dëst Beispill benotzt de normalen SSH-Port, 22. Dem Connector säin -X 5 wielt SOCKS5, während -x den Endpunkt vum Proxy bezeechent. D'Platzhalter fir Host a Port ginn d'SSH-Zil. Fir en ëffentlecht SSH-Zil kann en net authentifizéierten Endpunkt aus der SOCKS5-Proxy-Lëscht d'Proxyadress fëllen, wann en dat Zil an dee Port erlaabt. Konfiguréiert d'Kommando mat den Optioune vum tatsächleche Connector, dee op der Maschinn installéiert ass; Programmer mam Numm nc bidden net alleguer déi selwecht Interface.

De Connector leeft lokal, do wou Fabric leeft. Den Applikatiounsserver brauch dee Hëllefsprogramm net just well en d'SSH-Zil ass. Soubal de Stroum opgebaut ass, mécht Fabric nach ëmmer SSH-Verhandlungen an authentifizéiert de deploy-Konto op app.example.net. All Authentifikatioun, déi de SOCKS-Server verlaangt, gehéiert zum Connector a muss vun him ënnerstëtzt ginn.

Fabric kann och en ProxyCommand aus der SSH-Konfiguratioun liesen. Dat kann praktesch sinn, wann déiselwecht Streck vu méi SSH-Wierkzäit benotzt gëtt. Benotzt eng eenzeg virgesinn Gateway-Definitioun fir d'Verbindung, amplaz eng Gateway am Kommandostil mat enger separater Jump-Host-Gateway fir datselwecht Zil ze kombinéieren.

Wann den Tëschemann en SSH-Server ass

En Connection-Objekt vum Fabric, dat als gateway gëtt, bedeit eppes anescht: Fabric verbënnt sech mat där SSH-Gateway a freet e Kanal zum endgültegen Host. Benotzt déi Form fir en SSH-Jump-Host. En SOCKS-Lauschterer ass keen SSH-Server, dofir brauch en de Connector am Kommandostil uewen.

Dës Transportwiel huet och eng kloer Grenz. Et leet dem Fabric seng SSH-Verbindung. Eng Kommando, déi um Fernhost ausgefouert gëtt an duerno en Repository oder Package erofgelueden, mécht eng nei ausgänglech Verbindung vun deem Host, no där hirem eegene Proxy-Konfiguratioun.

Ähnlech Artikelen