Egy létrehozott HTTP CONNECT-alagút átadása a Paramiko számára
Csatlakoztassa a Paramikót engedélyezett HTTP CONNECT-útvonalon, miközben megőrzi az SSH-gazdagépkulcs ellenőrzését.
Miután egy HTTP CONNECT-segéd alagutat adott vissza a kívánt SSH-kiszolgálóhoz, adja át ezt a folyamot a Paramikónak:
with paramiko.SSHClient() as client:
client.load_system_host_keys()
client.connect('ssh.example.com',
username='operator',
sock=tunnel,
banner_timeout=10,
auth_timeout=10)
# Use the verified SSH connection.Cserélje ki a példagazdagépet, és töltse be az üzembe helyezés helyes known-hosts adatait. A tunnel már ugyanahhoz a kiszolgálóhoz kell vezessen. A connect-nek átadott gazdagépnév az SSH-gazdagépkulcsot azonosítja, nem a proxyt.
A sock-felület nyitott socketet vagy sockethez hasonló objektumot fogad el. Nem tárgyal HTTP-t Ön helyett. Visszaadása előtt az összekötőnek:
- Csatlakoznia kell a proxyhoz, és érvényes CONNECT-kérést kell küldenie a célhoz.
- Teljesítenie kell minden támogatott proxyhitelesítést, és érvényesítenie kell a sikeres alagútállapotot.
- A teljes proxyfejléc-szakaszt be kell olvasnia, kezelve a részleges olvasásokat és megőrizve a határon túli bájtokat.
- Korlátoznia kell a beállítást, és a tisztítási útvonalán keresztül le kell zárnia az elutasított/hibás socketeket.
Ehhez a munkához használjon karbantartott összekötőt. Ha egyetlen fogadópufferben angol sikerfrázist keres, elvéti a felosztott állapotsorokat, a változó indokszöveget és a hiányos fejléceket. A sikeres proxy TCP-kapcsolat nem az elfogadott SSH-alagút.
A proxynak engedélyeznie kell a kért SSH-portot; a webböngészési engedély nem hoz létre CONNECT-hozzáférést a 22-es porthoz. A 407 az SSH-bejelentkezés előtt történik, míg az SSH-fiók hibája az alagút után. Tartsa külön ezeket a fiókokat.
Ha végzett, zárja le az SSH-klienst és az összekötő tulajdonában lévő erőforrásokat. Egy feladat olvasásainak leállítása önmagában nem zár be élő kapcsolatot.