Fabric'in uzak komutları SSH üzerinden gider. Bu SSH bağlantısını bir SOCKS sunucusundan geçirmek için Fabric'e SOCKS konuşan ve hedefin bayt akışını döndüren bir bağlayıcı verin.

Fabric 2'de sunulan Connection API'si bir komut dizesini gateway olarak kabul eder. Fabric bu dizeyi ProxyCommand olarak kullanır. Proxy seçeneklerini destekleyen mevcut bir OpenBSD uyumlu nc varsa yapılandırma şöyle olabilir:

from fabric import Connection

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

Bu örnek olağan SSH bağlantı noktasını, 22'yi kullanır. Bağlayıcının -X 5 seçeneği SOCKS5'i seçerken -x proxy uç noktasını belirtir. Ana bilgisayar ve bağlantı noktası yer tutucuları SSH hedefini verir. Genel bir SSH hedefi için SOCKS5 proxy listesindeki kimlik doğrulaması gerektirmeyen bir uç nokta, o hedefe ve bağlantı noktasına izin veriyorsa proxy adresini doldurabilir. Komutu makinede kurulu gerçek bağlayıcının seçeneklerine göre yapılandırın; nc adlı programların hepsi aynı arayüzü sunmaz.

Bağlayıcı yerel olarak, Fabric'in çalıştığı yerde çalışır. Uygulama sunucusu yalnızca SSH hedefi olduğu için bu yardımcıya ihtiyaç duymaz. Akış kurulduktan sonra Fabric yine de SSH görüşmesini yapar ve deploy hesabını app.example.net üzerinde doğrular. SOCKS sunucusunun gerektirdiği her kimlik doğrulama bağlayıcıya aittir ve onun tarafından desteklenmelidir.

Fabric ayrıca SSH yapılandırmasından bir ProxyCommand okuyabilir. Aynı yol birden çok SSH aracı tarafından kullanıldığında bu kullanışlı olabilir. Aynı hedef için komut tarzı bir ağ geçidini ayrı bir sıçrama ana bilgisayarı ağ geçidiyle birleştirmek yerine bağlantı için tek bir amaçlanan ağ geçidi tanımı kullanın.

Aracı bir SSH sunucusu olduğunda

Fabric'in Connection nesnesi gateway olarak verildiğinde başka bir şey demektir: Fabric o SSH ağ geçidine bağlanır ve son ana bilgisayara bir kanal ister. SSH sıçrama ana bilgisayarı için bu biçimi kullanın. SOCKS dinleyicisi bir SSH sunucusu değildir, bu yüzden yukarıdaki komut tarzı bağlayıcıya ihtiyaç duyar.

Bu taşıma seçiminin de açık bir sınırı vardır. Fabric'in SSH bağlantısını yönlendirir. Uzak ana bilgisayarda çalıştırılan ve daha sonra bir depo veya paket indiren bir komut, o programın kendi proxy yapılandırmasına göre o ana bilgisayardan yeni bir giden bağlantı kurar.

İlgili makaleler