Python

Aký je rozdiel medzi Paramikom a Netmikom?

Aký je rozdiel medzi Paramikom a Netmikom?

Pokiaľ ide o vytváranie sietí, existuje široká škála perspektív a človek nedokáže zvládnuť interakciu so všetkými zariadeniami v reálnom svete. Všetky sieťové zariadenia však zdieľajú podobné funkcie, ktoré keď sa osvoja, sú automatizovateľné.

Ako už bolo spomenuté v mojich ďalších tutoriáloch, programátori sú leniví a neustále sa snažia zlepšovať efektívnosť, a teda odvádzať čo najmenej práce 🙂 -, a pokiaľ ide o automatizáciu problémov súvisiacich so sieťou, mnohí často dostanú šancu.

V dnešnom rýchlom sprievodcovi vám predstavím automatizáciu SSH pomocou dvoch populárnych knižníc Pythonu: Paramiko a Netmiko. Pomocou dvoch knižníc vytvoríme jednoduché pythonovské skripty na automatizáciu SSH a interakciu so sieťovými zariadeniami.

Zvolil som tento prístup, pretože sprievodca primárne zameraný na rozdiely medzi Paramikom a Netmikom by bol príliš krátky - stačila by jednoduchá tabuľka - a konkrétna. Použitím tohto prístupu budete s nimi lepšie experimentovať a uvidíte, čo a čo robí.

Začnime:

Čo je Paramiko?

Oficiálna webová stránka definuje Paramiko takto:

„Paramiko je Python (2.7, 3.4+) implementácia protokolu SSHv2, ktorá poskytuje funkcie klienta aj servera.“

Dúfam, že to bolo jasné. Z hľadiska princípu to znamená Paramiko je knižnica pythonu na interakciu s SSH.

Teraz:

Keď sa chceme prihlásiť na server, vieme, že ideme na terminál-cmd, xterm, MobaXterm alebo iba na prihlásenie do terminálu Gnome a potom vykonáme príkazy.

Pozrime sa, ako s tým môže Paramiko pomôcť.

Ako nainštalovať Paramiko

Ak chcete používať Paramiko, musíte si ho nainštalovať. Na vašom počítači by ste mali mať nainštalovaný Python - najlepšie python 2. Pomocou pipu zadajte nasledujúci príkaz a nainštalujte Paramiko.

sudo pip nainštalovať Paramiko
Python -m pip nainštalujte paramiko

Ak hľadáte zostavenie zo zdroja, pozrite si oficiálne úložisko Paramiko GitHub pomocou poskytnutého zdroja:

https: // github.com / paramiko / paramiko

Pripojenie k SSH pomocou Paramiko

Na pripojenie k SSH pomocou Paramiko používame metódu connect (), ktorá vyžaduje parameter hostname - podporuje tiež ďalšie parametre, ale keďže tieto nevyžadujeme, môžeme ich zatiaľ ignorovať.

connect (hostname, port = 22, username = None, password = None, pkey = None, key_filename = None, timeout = None, allow_agent = True, look_for_keys = True, compress = False, sock = None, gss_auth = False, gss_kex = False, gss_deleg_creds = True, gss_host = None, banner_timeout = None, auth_timeout = None, gss_trust_dns = True, prístupové heslo = žiadne, deaktivované_algoritmy = žiadne)

Pomocou tejto funkcie, ktorá je k dispozícii v paramiko. Zákazník.SSHClient.connect (), pripojí sa k zadanému názvu hostiteľa a autentifikuje ho. Cieľový systém sa skontroluje oproti existujúcim miestnym kľúčom systému (dôveryhodné).

Ak máte konkrétny súbor hostiteľa, môžete použiť metódu load_host_keys () a nastaviť klienta Paramiko SSH tak, aby do paramika pridal ľubovoľného neznámeho hostiteľa.AutoAddPolicy (). Ak používate klienta v nedôveryhodných systémoch, nepoužívajte paramiko.AutoAddPolicy.

Pripojenie SSH pomocou hesla

Z metódy pripojenia vidíme, že máme parametre používateľského mena a hesla, ktoré môžeme použiť na pripojenie k systému. Zvážte nasledujúci kód na pripojenie SSH pomocou používateľského mena a hesla.

z paramiko import util, SSHClient, AutoAddPolicy
klient = SSHClient ()
zákazník.load_system_host_keys ()
zákazník.load_host_keys ("/ home / linuxhint /".ssh / known_hosts ")
zákazník.set_missing_host_key_policy (AutoAddPolicy ())
zákazník.pripojiť (názov hostiteľa = "linuxhint.com ", username =" admin ", heslo =" AdminPassword ")
zákazník.Zavrieť()

Ak narazíte na problémy pri importovaní triedy Paramiko SSHClient, pozrite si nasledujúcu otázku stackoverflow:

https: // stackoverflow.com / questions / 29378234 / python-import-paramiko-error-cannot-import-name-util

Pripojenie SSH pomocou kľúča

Ako všetci vieme, pripojenie SSH pomocou kľúča je bezpečnejšie ako použitie surového hesla. Paramiko to vie a umožňuje vám odovzdať súbor s kľúčmi a pripojiť sa k cieľovému systému.

Zvážte kód uvedený nižšie.

z paramiko import SSHClient
od paramiko AutoAddPolicy
klient = SSHClient ()
zákazník.load_system_host_keys ()
zákazník.load_host_keys ('/ home / linuxhint /.ssh / known_hosts ')
zákazník.set_missing_host_key_policy (AutoAddPolicy ())
zákazník.pripojiť ('linuxhint.com ', username =' admin ', key_filename =' ssh_key.pem ', passphrase =' AdminPassphrase ')
zákazník.Zavrieť()

Spúšťanie príkazov nad SSH

Akonáhle získate prístup do systému pomocou SSH (cez Paramiko), môžete vykonať sériu príkazov. Zvážte nasledujúci útržok kódu:

klient = SSHClient ()
zákazník.load_system_host_keys ()
zákazník.pripojiť ('linuxhint.com ')
stdin, stdout, stderr = klient.exec_command ('bash ")
stdin.Zavrieť()
stdout.Zavrieť()
stderr.Zavrieť()
zákazník.Zavrieť()

V tomto okamihu viete, ako používať knižnicu Paramiko na automatizáciu SSH. Ako si viete predstaviť, nejde o komplexného sprievodcu Paramikom a neponárame sa do podrobností týkajúcich sa toho, čo tento nástroj robí. Cieľom bolo ukázať vám jeho implementáciu.

Ďalšie informácie nájdete v komplexnejších materiáloch, ako napríklad:

https: // dokumenty.paramiko.org / en / stable /
https: // github.com / paramiko / paramiko

Čo je Netmiko?

Netmiko je veľmi populárny a podobný Paramiku s niekoľkými významnými rozdielmi:

Pri práci na sieťach z reálneho sveta narazíte na rôzne modely zariadení. Preto potrebujete spoľahlivý nástroj, ktorý vám pomôže automatizovať proces. V niektorých prípadoch nemôžete Paramiko používať z dôvodu obmedzení podpory zariadení, ktoré vedú k oneskoreniam a zlyhaniam - podporované zariadenia môžete skontrolovať v oficiálnej dokumentácii. Je tiež podstatne pomalší ako Netmiko.

Paramiko je skôr generický modul SSH, ktorý môžete použiť na automatizáciu konkrétnych úloh SSH. Naproti tomu Netmiko je širší a dobre optimalizovaný na správu sieťových zariadení, ako sú prepínače a smerovače.

Abstrakcia je ďalšou výhodou používania Netmiko. Netmiko poskytuje jednoduchú funkciu, pomocou ktorej môžete vypnúť stránkovanie. Napríklad výstupom z relácie SSH môže byť viac ako jedna stránka. Pri použití pravidelných relácií SSH budete musieť pridať priestor podobný vstupu, aby sa zobrazila ďalšia stránka. Netmiko vám poskytuje spôsob, ako to prekonať.

Výhody Netmiko oproti Paramiko sú:

Ako nainštalovať Netmiko

Inštalácia Netmiko je tiež pomerne jednoduchá:

Musíte sa len ubezpečiť, že máte vo svojom systéme nainštalovaný Python a pip a spustiť príkaz:

pip nainštaluj netmiko
python -m pip nainštalovať netmiko

Pripojenie k SSH pomocou Netmiko

Pripojenie k reláciám SSH pomocou Netmiko je veľmi jednoduché. Pamätajte, že Netmiko je optimalizovanejšie pre zariadenia, ako sú smerovače, a nie pre generické SSH.

Zvážte fragment kódu uvedený nižšie.

#import moduly
z netmiko importu ConnectHandler
# informácie o zariadení vo formáte slovníka.
device_config =
„Device_type“: „cisco_ios“,
„Ip“: „192.168.0.1 ”,
„Username“: „admin“,
„Password“: „heslo“,
“Secret”: “heslo”

connection = ConnectHandler (** device_config)

Pomocou jednoduchého kódu vyššie budete mať k zariadeniu pripojenie SSH. Môžete tiež priamo preniesť informácie o zariadení namiesto ich prenosu do slovníka.

Keď už máte reláciu SSH, môžete vykonávať príkazy pomocou funkcie send_command (). Medzi funkcie podporované programom netmiko patria:

Bežne používané metódy Netmiko:

Ako už bolo spomenuté, nejde o návod, ako používať Netmiko, ale o jednoduchý smer toho, čo Netmiko a Paramiko sú. Ďalšie informácie nájdete v oficiálnej dokumentácii.

https: // github.com / ktbyers / netmiko

Záver

V tejto rýchlej príručke sme diskutovali o tom, ako používať paramiko na všeobecné pripojenia SSH a správu sieťových zariadení Netmiko, čo ilustruje rozdiely medzi týmito dvoma.

Uzavrieť:

Paramiko Netmiko
Užitočné pre všeobecné použitie ssh Najužitočnejšie pre konfiguráciu sieťových zariadení.
Obmedzená podpora pre širokú škálu sieťových zariadení. Podporuje širokú škálu sieťových zariadení.
Ako zmeniť veľkosť, farbu a schému ukazovateľa myši a kurzora v systéme Windows 10
Ukazovateľ myši a kurzor vo Windows 10 sú veľmi dôležité aspekty operačného systému. Dá sa to povedať aj pre iné operačné systémy, takže v skutočnosti...
Hry Zadarmo a open source herné motory pre vývoj hier pre Linux
Zadarmo a open source herné motory pre vývoj hier pre Linux
Tento článok sa bude zaoberať zoznamom bezplatných a otvorených herných nástrojov, ktoré možno použiť na vývoj 2D a 3D hier v systéme Linux. Existuje ...
Hry Výukový program Shadow of the Tomb Raider pre Linux
Výukový program Shadow of the Tomb Raider pre Linux
Shadow of the Tomb Raider je dvanásty prírastok do série Tomb Raider - franšíza akčných adventúr vytvorená Eidosom Montrealom. Túto hru prijali kritic...