SSH připojení Fabric 2+ přes SOCKS proxy
Použijte bránu ProxyCommand z Fabricu s konektorem podporujícím SOCKS a nechte SSH autentizaci navázanou na cílového hostitele.
Vzdálené příkazy Fabricu putují přes SSH. Chcete-li toto SSH připojení vést přes SOCKS server, dejte Fabricu konektor, který mluví SOCKS a vrací bajtový proud cíle.
API Connection představené ve Fabricu 2 přijímá řetězec příkazu jako svůj gateway. Fabric tento řetězec používá jako ProxyCommand. Pokud je k dispozici kompatibilní nc s OpenBSD, který podporuje své proxy volby, konfigurace může vypadat takto:
from fabric import Connection
connection = Connection(
"app.example.net",
user="deploy",
gateway="nc -X 5 -x proxy.example.net:1080 %h %p",
)Tento příklad používá obvyklý SSH port 22. -X 5 konektoru vybírá SOCKS5, zatímco -x určuje koncový bod proxy. Zástupné symboly hostitele a portu dodávají cíl SSH. Pro veřejný cíl SSH může neautentizovaný koncový bod ze seznamu SOCKS5 proxy vyplnit adresu proxy, pokud povoluje daný cíl a port. Nakonfigurujte příkaz podle voleb skutečného konektoru nainstalovaného na stroji; programy s názvem nc nenabízejí všechny stejné rozhraní.
Konektor běží lokálně, tam kde běží Fabric. Aplikační server tohoto pomocníka nepotřebuje jen proto, že je cílem SSH. Po navázání proudu Fabric stále provádí SSH vyjednávání a autentizuje účet deploy na app.example.net. Jakákoli autentizace vyžadovaná SOCKS serverem patří konektoru a musí ji podporovat.
Fabric může také číst ProxyCommand z konfigurace SSH. To může být výhodné, když stejnou trasu používá několik SSH nástrojů. Pro připojení používejte jednu zamýšlenou definici brány, místo abyste kombinovali bránu ve stylu příkazu se samostatnou bránou jump hostu pro stejný cíl.
Když je prostředníkem SSH server
Objekt Connection z Fabricu předaný jako gateway znamená něco jiného: Fabric se připojí k této SSH bráně a požádá o kanál ke konečnému hostiteli. Tuto formu použijte pro SSH jump host. SOCKS naslouchající proces není SSH server, takže potřebuje výše uvedený konektor ve stylu příkazu.
Tato volba transportu má také jasný limit. Směruje SSH připojení Fabricu. Příkaz spuštěný na vzdáleném hostiteli, který později stáhne repozitář nebo balíček, vytváří z tohoto hostitele nové odchozí připojení podle vlastní proxy konfigurace daného programu.