Gee ’n gevestigde HTTP CONNECT-tonnel aan Paramiko
Verbind Paramiko deur ’n gemagtigde HTTP CONNECT-roete terwyl SSH-gasheersleutelverifikasie behou word.
Sodra ’n HTTP CONNECT-hulpmiddel ’n tonnel na die beoogde SSH-bediener teruggegee het, gee daardie stroom aan 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.Vervang die voorbeeldgasheer en laai die ontplooiing se korrekte known-hosts-data. tunnel moet reeds na dieselfde bediener lei. Die gasheernaam wat aan connect gegee word, identifiseer die SSH-gasheersleutel, nie die volmag nie.
Die sock-koppelvlak aanvaar ’n oop socket of socket-agtige voorwerp. Dit onderhandel nie HTTP vir jou nie. Voordat dit teruggegee word, moet die verbinder:
- Aan die volmag koppel en ’n geldige CONNECT-versoek vir die bestemming stuur.
- Enige ondersteunde volmagverifikasie voltooi en ’n suksesvolle tonnelstatus bevestig.
- Die hele volmag-opskrifafdeling lees, gedeeltelike lesings hanteer en grepe anderkant die grens bewaar.
- Die opstelling begrens en verwerpde/fout-sockets deur sy opruimingsroete sluit.
Gebruik ’n onderhoude verbinder vir daardie werk. Om een ontvangsbuffer vir ’n Engelse suksesfrase te deursoek, mis splitstatuslyne, veranderlike redes en onvolledige opskrifte. ’n Suksesvolle volmag-TCP-verbinding is nie die aanvaarde SSH-tonnel nie.
Die volmag moet die versoekte SSH-poort toelaat; webblaai-toestemming vestig nie CONNECT-toegang na poort 22 nie. ’n 407 gebeur voor SSH-aanmelding, terwyl ’n SSH-rekeningfout na die tonnel gebeur. Hou daardie rekeninge apart.
Sluit die SSH-kliënt en die hulpbronne wat deur die verbinder besit word, wanneer klaar. ’n Taak wat sy lesings stop, sluit nie self ’n lewende verbinding nie.