Fabric 2+ SSH ryšiai per SOCKS tarpinį serverį
Naudokite Fabric ProxyCommand vartus su SOCKS palaikančiu jungikliu, palikdami SSH autentifikaciją pririštą prie paskirties.
Fabric nuotolinės komandos keliauja per SSH. Kad šį SSH ryšį perduotumėte per SOCKS serverį, duokite Fabric jungiklį, kuris kalba SOCKS ir grąžina paskirties baitų srautą.
Fabric 2 pristatytas Connection API priima komandos eilutę kaip savo gateway. Fabric naudoja tą eilutę kaip ProxyCommand. Jei yra OpenBSD suderinamas nc, palaikantis savo tarpinio serverio parinktis, konfigūracija gali būti tokia:
from fabric import Connection
connection = Connection(
"app.example.net",
user="deploy",
gateway="nc -X 5 -x proxy.example.net:1080 %h %p",
)Šis pavyzdys naudoja įprastą SSH prievadą 22. Jungiklio -X 5 pasirenka SOCKS5, o -x nurodo tarpinio serverio galinį tašką. Prieglobos ir prievado vietos žymekliai pateikia SSH paskirtį. Viešai SSH paskirčiai neautentifikuotas galinis taškas iš SOCKS5 tarpinių serverių sąrašo gali užpildyti tarpinio serverio adresą, jei jis leidžia tą paskirtį ir prievadą. Konfigūruokite komandą pagal tikro mašinoje įdiegto jungiklio parinktis; programos, vadinamos nc, ne visos siūlo tą pačią sąsają.
Jungiklis veikia lokaliai, ten, kur veikia Fabric. Programos serveriui to pagalbininko nereikia vien todėl, kad jis yra SSH paskirtis. Kai srautas nustatytas, Fabric vis dar atlieka SSH derybas ir autentifikuoja deploy paskyrą app.example.net. Bet kokia SOCKS serverio reikalaujama autentifikacija priklauso jungikliui ir turi būti jo palaikoma.
Fabric taip pat gali nuskaityti ProxyCommand iš SSH konfigūracijos. Tai gali būti patogu, kai tą patį maršrutą naudoja keli SSH įrankiai. Ryšiui naudokite vieną numatytą vartų apibrėžimą, o ne derinkite komandinio stiliaus vartus su atskirais šuolio prieglobos vartais tai pačiai paskirčiai.
Kai tarpininkas yra SSH serveris
Fabric Connection objektas, pateiktas kaip gateway, reiškia ką kita: Fabric prisijungia prie tų SSH vartų ir prašo kanalo į galutinę prieglobą. Naudokite tą formą SSH šuolio prieglobai. SOCKS klausytojas nėra SSH serveris, todėl jam reikia aukščiau aprašyto komandinio stiliaus jungiklio.
Šis transporto pasirinkimas taip pat turi aiškią ribą. Jis maršrutizuoja Fabric SSH ryšį. Komanda, įvykdyta nuotolinėje priegloboje ir vėliau atsisiunčianti saugyklą ar paketą, sukuria naują išeinantį ryšį iš tos prieglobos pagal tos programos pačios tarpinio serverio konfigūraciją.