Fabric 2+-ի SSH միացումները SOCKS վստահված սերվերի միջոցով
Օգտագործեք Fabric-ի ProxyCommand դարպասը SOCKS-ը հասկացող միակցիչով՝ SSH նույնականացումը թողնելով նպատակակետին կապված։
Fabric-ի հեռավոր հրամանները ճամփորդում են SSH-ով։ Այդ SSH միացումը SOCKS սերվերով անցկացնելու համար Fabric-ին տվեք միակցիչ, որը խոսում է SOCKS և վերադարձնում նպատակակետի բայթային հոսքը։
Fabric 2-ում ներկայացված Connection API-ն որպես իր 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 սերվեր է
Fabric-ի Connection օբյեկտը, որպես gateway տրամադրվելիս, այլ բան է նշանակում. Fabric-ը միանում է այդ SSH դարպասին և վերջնական հոսթի համար ալիք է խնդրում։ Այդ ձևն օգտագործեք SSH ցատկող հոսթի համար։ SOCKS լսողը SSH սերվեր չէ, ուստի նրան պետք է վերը նշված հրամանային ոճի միակցիչը։
Այս տրանսպորտի ընտրությունն ունի նաև հստակ սահման։ Այն երթուղավորում է Fabric-ի SSH միացումը։ Հեռավոր հոսթում կատարվող հրամանը, որը հետագայում ներբեռնում է պահոց կամ փաթեթ, նոր ելքային միացում է ստեղծում այդ հոսթից՝ ըստ այդ ծրագրի սեփական վստահված սերվերի կարգավորման։