Fabric 2+ SSH-yhteydet SOCKS-välityspalvelimen kautta
Käytä Fabricin ProxyCommand-yhdyskäytävää SOCKS-yhteensopivalla liittimellä ja pidä SSH-todennus kohdekohtaisena.
Fabricin etäkomennot kulkevat SSH:n yli. Jotta voit kuljettaa tämän SSH-yhteyden SOCKS-palvelimen kautta, anna Fabricille liitin, joka puhuu SOCKSia ja palauttaa kohteen tavuvirran.
Fabric 2:ssa esitelty Connection-sovellusliittymä hyväksyy komentojonon gateway-arvonaan. Fabric käyttää tätä jonoa ProxyCommandina. Jos käytettävissä on OpenBSD-yhteensopiva nc, joka tukee välityspalvelinvalintojaan, kokoonpano voi olla:
from fabric import Connection
connection = Connection(
"app.example.net",
user="deploy",
gateway="nc -X 5 -x proxy.example.net:1080 %h %p",
)Tämä esimerkki käyttää tavallista SSH-porttia 22. Liittimen -X 5 valitsee SOCKS5:n, kun taas -x osoittaa välityspalvelimen päätepisteen. Isäntänimen ja portin paikkamerkit antavat SSH-kohteen. Julkiselle SSH-kohteelle todennusvapaa päätepiste SOCKS5-välityspalvelinluettelosta voi täyttää välityspalvelimen osoitteen, jos se sallii kyseisen kohteen ja portin. Määritä komento koneelle asennetun varsinaisen liittimen valinnoilla; kaikki nc-nimiset ohjelmat eivät tarjoa samaa rajapintaa.
Liitin toimii paikallisesti siellä, missä Fabric toimii. Sovelluspalvelin ei tarvitse apuria pelkästään siksi, että se on SSH-kohde. Kun virta on muodostettu, Fabric käy yhä SSH-neuvottelun ja todentaa deploy-tilin kohteessa app.example.net. Kaikki SOCKS-palvelimen vaatima todennus kuuluu liittimelle, ja sen on tuettava sitä.
Fabric voi myös lukea ProxyCommand-asetuksen SSH-kokoonpanosta. Tästä voi olla hyötyä, kun useat SSH-työkalut käyttävät samaa reittiä. Käytä yhteydelle yhtä aiottua yhdyskäytävämääritystä sen sijaan, että yhdistäisit komentotyylisen yhdyskäytävän erilliseen hyppypalvelinyhdyskäytävään samalle kohteelle.
Kun välittäjä on SSH-palvelin
Fabricin Connection-olio, joka annetaan gateway-arvona, tarkoittaa jotain muuta: Fabric yhdistää kyseiseen SSH-yhdyskäytävään ja pyytää kanavaa lopulliselle isännälle. Käytä tätä muotoa SSH-hyppypalvelimelle. SOCKS-kuuntelija ei ole SSH-palvelin, joten se tarvitsee yllä kuvatun komentotyylisen liittimen.
Tällä kuljetusvalinnalla on myös selvä raja. Se reitittää Fabricin SSH-yhteyden. Etäisännällä suoritettu komento, joka myöhemmin lataa tietovaraston tai paketin, muodostaa uuden lähtevän yhteyden kyseiseltä isännältä, kyseisen ohjelman oman välityspalvelinkokoonpanon mukaisesti.