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:

  1. Csatlakoznia kell a proxyhoz, és érvényes CONNECT-kérést kell küldenie a célhoz.
  2. Teljesítenie kell minden támogatott proxyhitelesítést, és érvényesítenie kell a sikeres alagútállapotot.
  3. A teljes proxyfejléc-szakaszt be kell olvasnia, kezelve a részleges olvasásokat és megőrizve a határon túli bájtokat.
  4. 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.

Kapcsolódó cikkek