Fifún ìwàlàjà HTTP CONNECT tí ó ti wà ní Paramiko
So Paramiko pọ̀ nípasẹ̀ ọ̀nà HTTP CONNECT tí a fọwọ́ sí, ní píparí ìjẹ́rìí kọ́kọ́rọ́ ẹ̀rọ SSH.
Lẹ́yìn tí olùrànlọ́wọ́ HTTP CONNECT bá ti dá ìwàlàjà padà sí ẹ̀rọ SSH tí a fẹ́, fi ṣíṣàn yẹn fún 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.Rọ́pò ẹ̀rọ àpẹẹrẹ náà kí o sì gbé dátà known-hosts tó tọ́ ti ìgbékalẹ̀ náà wọlé. tunnel gbọ́dọ̀ ti darí sí ẹ̀rọ yẹn náà. Orúkọ ẹ̀rọ tí a fi fún connect ń dámọ̀ kọ́kọ́rọ́ ẹ̀rọ SSH, kì í ṣe proxy.
Ẹ̀ka sock gba socket tí ó ṣí sílẹ̀ tàbí ohun tí ó dà bí socket. Kì í ṣe ìjíròrò HTTP fún ọ. Kí ó tó dá a padà, olùsopọ̀ gbọ́dọ̀:
- Sopọ̀ mọ́ proxy kí ó sì fi ìbéèrè CONNECT tó tọ́ ránṣẹ́ sí ibi tí ó ń lọ.
- Parí ìjẹ́rìí proxy èyíkéyìí tí a ṣe àtìlẹ́yìn fún kí ó sì fọwọ́ sí ipò ìwàlàjà àṣeyọrí.
- Ka gbogbo apá àkọlé proxy, tọ́jú kíkà apá kan àti píparí àwọn byte tí ó kọjá ààlà.
- Dín ìtòlẹ́sẹẹsẹ kù kí ó sì ti àwọn socket tí a kọ̀/ẹ̀tọ́ nípasẹ̀ ọ̀nà ìmọ́tótó rẹ̀.
Lo olùsopọ̀ tí a ń tọ́jú fún iṣẹ́ yẹn. Wíwá gbólóhùn àṣeyọrí Gẹ̀ẹ́sì nínú búfà gbígbà kan ṣe àfojúsùn àwọn ìlà ipò tí a pín, ọ̀rọ̀ ìdí tí ń yí padà àti àwọn àkọlé tí kò pé. Ìsopọ̀ TCP proxy àṣeyọrí kì í ṣe ìwàlàjà SSH tí a gbà.
Proxy gbọ́dọ̀ gba ibùdó SSH tí a béèrè; ìyọ̀nda ìwò web kì í fi ìwọlé CONNECT sí ibùdó 22 lélẹ̀. 407 ń ṣẹlẹ̀ kí SSH tó wọlé, nígbà tí ìkùnà àkọsílẹ̀ SSH ń ṣẹlẹ̀ lẹ́yìn ìwàlàjà. Pa àwọn àkọsílẹ̀ yẹn mọ́ lọ́tọ̀ọ̀tọ̀.
Ti ẹ̀rọ SSH àti àwọn ohun tí olùsopọ̀ ní nígbà tí o bá parí. Píparí kíkà iṣẹ́ kan kò ti ìsopọ̀ tí ó wà láàyè fúnra rẹ̀.