Kun HTTP CONNECT -aputyökalu on palauttanut tunnelin aiottuun SSH-palvelimeen, anna kyseinen virta Paramikolle:

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.

Korvaa esimerkkipalvelin ja lataa käyttöönoton oikeat known-hosts-tiedot. tunnel johtaa jo samaan palvelimeen. connect:lle annettu isäntänimi yksilöi SSH-isäntäavaimen, ei välityspalvelinta.

sock-rajapinta hyväksyy avoimen pistokkeen tai pistokkeen kaltaisen olion. Se ei neuvottele HTTP:tä puolestasi. Ennen palauttamista yhdistimen on:

  1. Yhdistettävä välityspalvelimeen ja lähetettävä kelvollinen CONNECT-pyyntö kohteelle.
  2. Suoritettava kaikki tuetut välityspalvelimen todennukset ja vahvistettava onnistunut tunnelin tila.
  3. Luettava välityspalvelimen koko otsikko-osio, käsiteltävä osittaiset luvut ja säilytettävä rajan ylittävät tavut.
  4. Rajoitettava asetusta ja suljettava hylätyt/virheelliset pistokkeet siivouspolkunsa kautta.

Käytä kyseiseen työhön ylläpidettyä yhdistintä. Englanninkielisen onnistumislauseen etsiminen yhdestä vastaanottopuskurista jättää huomaamatta jaetut tilalinjat, vaihtelevan syytekstin ja puutteelliset otsikot. Onnistunut välityspalvelimen TCP-yhteys ei ole hyväksytty SSH-tunneli.

Välityspalvelimen on sallittava pyydetty SSH-portti; verkkoselailulupa ei luo CONNECT-pääsyä porttiin 22. 407 tapahtuu ennen SSH-kirjautumista, kun taas SSH-tilin virhe tapahtuu tunnelin jälkeen. Pidä nämä tilit erillään.

Sulje SSH-asiakasohjelma ja yhdistimen omistamat resurssit, kun olet valmis. Tehtävän lukemisen pysäyttäminen ei itsessään sulje elävää yhteyttä.

Aiheeseen liittyvät artikkelit