SSH pripojenia Fabric 2+ cez SOCKS proxy
Použite bránu ProxyCommand z Fabricu s konektorom podporujúcim SOCKS a nechajte SSH autentifikáciu naviazanú na cieľového hostiteľa.
Vzdialené príkazy Fabricu putujú cez SSH. Ak chcete toto SSH pripojenie viesť cez SOCKS server, dajte Fabricu konektor, ktorý hovorí SOCKS a vracia bajtový tok cieľa.
API Connection predstavené vo Fabrici 2 prijíma reťazec príkazu ako svoj gateway. Fabric používa tento reťazec ako ProxyCommand. Ak je k dispozícii kompatibilný nc s OpenBSD, ktorý podporuje svoje proxy voľby, konfigurácia môže byť:
from fabric import Connection
connection = Connection(
"app.example.net",
user="deploy",
gateway="nc -X 5 -x proxy.example.net:1080 %h %p",
)Tento príklad používa obvyklý SSH port 22. -X 5 konektora vyberá SOCKS5, zatiaľ čo -x určuje koncový bod proxy. Zástupné symboly hostiteľa a portu dodávajú cieľ SSH. Pre verejný cieľ SSH môže neautentizovaný koncový bod zo zoznamu SOCKS5 proxy vyplniť adresu proxy, ak povoľuje daný cieľ a port. Nakonfigurujte príkaz podľa volieb skutočného konektora nainštalovaného na stroji; programy s názvom nc neponúkajú všetky rovnaké rozhranie.
Konektor beží lokálne, tam kde beží Fabric. Aplikačný server tohto pomocníka nepotrebuje len preto, že je cieľom SSH. Po nadviazaní toku Fabric stále vykonáva SSH vyjednávanie a autentizuje účet deploy na app.example.net. Akákoľvek autentifikácia vyžadovaná SOCKS serverom patrí konektoru a musí ju podporovať.
Fabric môže tiež čítať ProxyCommand z konfigurácie SSH. To môže byť výhodné, keď rovnakú trasu používa viac SSH nástrojov. Pre pripojenie používajte jednu zamýšľanú definíciu brány, namiesto kombinovania brány v štýle príkazu so samostatnou bránou jump hostu pre rovnaký cieľ.
Keď je prostredníkom SSH server
Objekt Connection z Fabricu odovzdaný ako gateway znamená niečo iné: Fabric sa pripojí k tejto SSH bráne a požiada o kanál ku konečnému hostiteľovi. Túto formu použite pre SSH jump host. SOCKS poslucháč nie je SSH server, takže potrebuje vyššie uvedený konektor v štýle príkazu.
Táto voľba transportu má tiež jasnú hranicu. Smeruje SSH pripojenie Fabricu. Príkaz spustený na vzdialenom hostiteľovi, ktorý neskôr stiahne repozitár alebo balík, vytvára z tohto hostiteľa nové odchádzajúce pripojenie podľa vlastnej proxy konfigurácie daného programu.