Wara li assistent HTTP CONNECT ikun irritorna tunnel lis-server SSH maħsub, agħti dak il-fluss lil 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.

Ibdel il-host tal-eżempju u għabbi d-data known-hosts korretta tal-implimentazzjoni. tunnel diġà għandu jwassal għal dak l-istess server. L-isem tal-host li jgħaddi lil connect jidentifika l-muftieħ tal-host SSH, mhux il-proxy.

L-interface sock taċċetta socket miftuħa jew oġġett simili għal socket. Ma tinnegozjax HTTP għalik. Qabel ma tirritornah, il-konnettur irid:

  1. Jikkonnettja mal-proxy u jibgħat talba CONNECT valida għad-destinazzjoni.
  2. Jitlesta kwalunkwe awtentikazzjoni tal-proxy appoġġjata u jivvalida status ta’ tunnel b’suċċess.
  3. Jaqra s-sezzjoni kollha tal-intestaturi tal-proxy, filwaqt li jimmaniġġja qari parzjali u jippreserva l-bytes lil hinn mill-limitu.
  4. Jillimita s-setup u jagħlaq is-sockets miċħuda/bil-ħsara permezz tal-passaġġ tat-tindif tiegħu.

Uża konnettur miżmum għal dak ix-xogħol. It-tfittxija ta’ frażi ta’ suċċess bl-Ingliż f’buffer wieħed tal-wasla taqbeż linji tal-istat maqsuma, test tar-raġuni varjabbli u intestaturi mhux sħaħ. Konnessjoni TCP tal-proxy b’suċċess mhijiex it-tunnel SSH aċċettat.

Il-proxy għandu jippermetti l-port SSH mitlub; il-permess tal-browsing tal-web ma jistabbilixxix aċċess CONNECT għall-port 22. 407 iseħħ qabel id-dħul SSH, filwaqt li falliment tal-kont SSH iseħħ wara t-tunnel. Żomm dawk il-kontijiet separati.

Agħlaq il-klijent SSH u r-riżorsi proprjetà tal-konnettur meta tispiċċa. Li task jieqaf il-qari tiegħu ma jagħlaqx waħdu konnessjoni ħajja.

Artikli relatati