SSH-врски на Fabric 2+ преку SOCKS прокси
Користете го ProxyCommand порталот на Fabric со конектор што поддржува SOCKS, додека SSH-автентикацијата останува врзана за одредиштето.
Далечинските наредби на Fabric патуваат преку SSH. За да ја пренесете таа SSH-врска преку SOCKS сервер, дајте му на Fabric конектор што зборува SOCKS и го враќа бајтниот тек на одредиштето.
API-то Connection воведено во Fabric 2 прифаќа низа наредба како свој gateway. Fabric ја користи таа низа како ProxyCommand. Со постоечки OpenBSD-компатибилен nc што ги поддржува своите прокси-опции, конфигурацијата може да биде:
from fabric import Connection
connection = Connection(
"app.example.net",
user="deploy",
gateway="nc -X 5 -x proxy.example.net:1080 %h %p",
)Овој пример го користи вообичаениот SSH-порт, 22. -X 5 на конекторот избира SOCKS5, додека -x ја означува крајната точка на проксито. Заменувачите за домаќин и порта го даваат SSH-одредиштето. За јавно SSH-одредиште, неавтентифицирана крајна точка од списокот на SOCKS5 проксија може да ја пополни адресата на проксито ако го дозволува тоа одредиште и порта. Конфигурирајте ја наредбата според опциите на вистинскиот конектор инсталиран на машината; програмите наречени nc не нудат сите исто интерфејс.
Конекторот работи локално, таму каде што работи Fabric. Апликацискиот сервер не му е потребен тој помошник само затоа што е SSH-одредиште. Откако ќе се воспостави текот, Fabric сè уште врши SSH-преговори и ја автентицира сметката deploy на app.example.net. Секоја автентикација што ја бара SOCKS серверот му припаѓа на конекторот и мора да биде поддржана од него.
Fabric може исто така да прочита ProxyCommand од SSH-конфигурација. Тоа може да биде погодно кога истата рута ја користат повеќе SSH-алатки. Користете една предвидена дефиниција на портал за врската, наместо да комбинирате портал во стил на наредба со одделен портал за скок-домаќин за истото одредиште.
Кога посредникот е SSH сервер
Објектот Connection на Fabric доставен како gateway значи нешто друго: Fabric се поврзува со тој SSH-портал и бара канал до конечниот домаќин. Користете го тој облик за SSH скок-домаќин. SOCKS-слушателот не е SSH сервер, па затоа му е потребен конекторот во стил на наредба погоре.
Овој избор на транспорт има и јасна граница. Тој ја насочува SSH-врската на Fabric. Наредба извршена на далечинскиот домаќин што подоцна презема складиште или пакет создава нова излезна врска од тој домаќин, според сопствената прокси-конфигурација на таа програма.