Post kiam HTTP CONNECT-helpilo redonis tunelon al la celata SSH-servilo, donu tiun fluon al 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.

Anstataŭigu la ekzemplan gastiganton kaj ŝargu la ĝustajn known-hosts-datumojn de la deplojo. tunnel jam devas konduki al tiu sama servilo. La gastigantnomo transdonita al connect identigas la SSH-gastigan ŝlosilon, ne la prokurilon.

La sock-interfaco akceptas malfermitan soketon aŭ soket-similan objekton. Ĝi ne intertraktas HTTP por vi. Antaŭ ol redoni ĝin, la konektilo devas:

  1. Konekti al la prokurilo kaj sendi validan CONNECT-peton por la celo.
  2. Finplenumi ajnan subtenatan prokurilan aŭtentikigon kaj validigi sukcesan tunelan staton.
  3. Legi la tutan prokurilan kaplinsekion, traktante partajn legadojn kaj konservante bajtojn preter la limo.
  4. Limi la agordon kaj fermi rifuzitajn/erarajn soketojn per sia puriga vojo.

Uzu prizorgatan konektilon por tiu laboro. Serĉi anglalingvan sukcesfrazon en unu riceva bufro maltrafas dividitajn statoliniojn, ŝanĝiĝantan kialan tekston kaj nekompletajn kaplinformojn. Sukcesa prokurila TCP-konekto ne estas la akceptita SSH-tunelo.

La prokurilo devas permesi la petitan SSH-porton; retumila permeso ne starigas CONNECT-aliro al pordo 22. 407 okazas antaŭ SSH-ensaluto, dum SSH-konta fiasko okazas post la tunelo. Tenu tiujn kontojn apartaj.

Fermu la SSH-klienton kaj la rimedojn posedatajn de la konektilo kiam vi finos. Tasko haltiganta siajn legadojn ne mem fermas vivan konekton.

Rilataj artikoloj