Videresende en etablert HTTP CONNECT-tunnel til Paramiko
Koble Paramiko gjennom en autorisert HTTP CONNECT-rute mens SSH-vertsnøkkelverifisering beholdes.
Når en HTTP CONNECT-hjelper har returnert en tunnel til den tiltenkte SSH-serveren, gi den strømmen til Paramiko:
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.Erstatt eksempelverten og last inn distribusjonens korrekte known-hosts-data. tunnel må allerede føre til samme server. Vertsnavnet som sendes til connect, identifiserer SSH-vertsnøkkelen, ikke proxyen.
sock-grensesnittet godtar en åpen socket eller et socketlignende objekt. Det forhandler ikke HTTP for deg. Før det returneres, må connectoren:
- Koble til proxyen og sende en gyldig CONNECT-forespørsel for målet.
- Fullføre all støttet proxyautentisering og validere en vellykket tunnelstatus.
- Lese hele proxy-headeravsnittet, håndtere delvise lesinger og bevare byte utenfor grensen.
- Begrense oppsettet og lukke avviste/feilaktige sockets gjennom sin oppryddingssti.
Bruk en vedlikeholdt connector til det arbeidet. Å søke etter en engelsk suksessfrase i én mottaksbuffer overser delte statuslinjer, variabel årsakstekst og ufullstendige headere. En vellykket proxy-TCP-tilkobling er ikke den aksepterte SSH-tunnelen.
Proxyen må tillate den forespurte SSH-porten; nettlesertillatelse etablerer ikke CONNECT-tilgang til port 22. En 407 oppstår før SSH-innlogging, mens en SSH-kontofeil oppstår etter tunnelen. Hold disse kontoene atskilt.
Lukk SSH-klienten og ressursene connectoren eier når du er ferdig. At en oppgave stopper lesingene sine, lukker ikke i seg selv en aktiv tilkobling.