Python

Mikä on ero Paramikon ja Netmikon välillä?

Mikä on ero Paramikon ja Netmikon välillä?

Verkostoitumisessa on laaja näkökulma, eikä kukaan voi hallita, miten olla vuorovaikutuksessa kaikkien laitteiden kanssa todellisessa maailmassa. Kaikilla verkkolaitteilla on kuitenkin samanlainen toiminnallisuus, joka hallitessaan on automatisoitavissa.

Kuten muissa opetusohjelmissani mainittiin, ohjelmoijat ovat laiskoja ja pyrkivät aina parantamaan tehokkuuttaan ja tekevät siten vähiten työtä 🙂 - ja kun on kyse verkkoon liittyvien ongelmien automatisoinnista, monet hyppäävät usein mahdollisuuteen.

Tämän päivän pikaoppaassa esitän sinut SSH: n automatisoimiseen kahdella suositulla Python-kirjastolla: Paramiko ja Netmiko. Luomme yksinkertaisia ​​python-komentosarjoja käyttämällä kahta kirjastoa SSH: n automatisoimiseksi ja vuorovaikutuksessa verkkolaitteiden kanssa.

Valitsen tämän lähestymistavan, koska ensisijaisesti Paramikon ja Netmikon välisiin eroihin keskittynyt opas olisi liian lyhyt - yksinkertainen taulukko riittää - ei konkreettinen. Tämän lähestymistavan avulla voit paremmin kokeilla heitä ja nähdä, mikä tekee mitä ja miten.

Aloitetaan:

Mikä on Paramiko?

Virallisilla verkkosivuilla Paramiko määritellään seuraavasti:

"Paramiko on Python (2.7, 3.4+) SSHv2-protokollan toteutus, joka tarjoaa sekä asiakas- että palvelintoiminnot.”

Toivon, että se oli selvää. Perustana se tarkoittaa Paramiko on python-kirjasto vuorovaikutuksessa SSH: n kanssa.

Nyt:

Kun haluamme kirjautua palvelimelle, tiedämme, että siirrymme pääte-cmd, xterm, MobaXterm tai vain Gnome Terminal-login -ohjelmaan ja suoritamme sitten komennot.

Katsotaanpa, kuinka Paramiko voi auttaa siinä.

Paramikon asentaminen

Paramikon käyttämiseksi meidän on asennettava se. Sinun pitäisi olla Python - mieluiten python 2 - asennettuna koneellesi. Asenna Paramiko kirjoittamalla alla oleva komento pipillä.

sudo pip asenna Paramiko
Python -m pip asenna paramiko

Jos haluat rakentaa lähteestä, tutustu viralliseen Paramiko GitHub -tietovarastoon käyttämällä toimitettua resurssia:

https: // github.com / paramiko / paramiko

Yhdistäminen SSH: hen Paramikolla

Yhteyden muodostamiseksi SSH: hen Paramikolla käytämme connect () -menetelmää, joka vaatii isäntänimen parametrin - se tukee myös muita parametreja, mutta koska emme vaadi niitä, voimme jättää ne toistaiseksi huomiotta.

muodosta yhteys (isäntänimi, portti = 22, käyttäjänimi = ei mitään, salasana = ei mitään, avain = ei mitään, avain_tiedostonimi = ei mitään, aikakatkaisu = ei mitään, allow_agent = tosi, look_for_keys = tosi, pakkaa = väärä, sukka = ei mitään, gss_auth = väärä, gss_kex = False, gss_deleg_creds = True, gss_host = Ei mitään, banner_timeout = Ei mitään, auth_timeout = Ei mitään, gss_trust_dns = Tosi, salasana = Ei mitään, pois käytöstä_algoritmit = Ei mitään)

Tämän toiminnon avulla, joka on saatavana paramikossa. Asiakas.SSHClient.connect (), muodostaa yhteyden määritettyyn isäntänimeen ja todentaa sen. Kohdejärjestelmä tarkistetaan olemassa olevien paikallisten järjestelmäavainten (luotettu) perusteella.

Jos sinulla on tietty isäntätiedosto, voit käyttää load_host_keys () -menetelmää ja asettaa Paramiko SSH -asiakas lisäämään tuntemattoman isännän paramikoon.AutoAddPolicy (). Jos käytät asiakasta epäluotettavissa järjestelmissä, vältä paramikon käyttöä.AutoAddPolicy.

SSH: n yhdistäminen salasanalla

Yhdistä-menetelmästä voimme nähdä, että meillä on käyttäjätunnus- ja salasanaparametrit, joita voimme käyttää yhteyden muodostamiseen järjestelmään. Harkitse alla olevaa koodia yhdistääksesi SSH käyttäjänimen ja salasanan avulla.

paramiko-tuonnista, SSHClient, AutoAddPolicy
asiakas = SSHClient ()
asiakas.load_system_host_keys ()
asiakas.load_host_keys ("/ koti / linuxhint /.ssh / known_hosts ")
asiakas.set_missing_host_key_policy (AutoAddPolicy ())
asiakas.connect (isäntänimi = "linuxhint.fi ", username =" admin ", password =" AdminPassword ")
asiakas.kiinni()

Jos kohtaat ongelmia Paramiko SSHClient -luokan tuonnissa, katso seuraava pinonkulun kysymys:

https: // stackoverflow.fi / questions / 29378234 / python-import-paramiko-error-can't-import-name-util

Yhdistetään SSH avaimen avulla

Kuten me kaikki tiedämme, SSH: n yhdistäminen avaimen kautta on turvallisempaa kuin raakasalasanan käyttö. Paramiko tietää tämän ja antaa sinun välittää avaintiedoston ja muodostaa yhteyden kohdejärjestelmään.

Harkitse alla olevaa koodia.

paramiko-tuonnista SSHClient
alkaen paramiko AutoAddPolicy
asiakas = SSHClient ()
asiakas.load_system_host_keys ()
asiakas.load_host_keys ('/ koti / linuxhint /.ssh / known_hosts ')
asiakas.set_missing_host_key_policy (AutoAddPolicy ())
asiakas.connect ('linuxhint.fi ', ​​käyttäjänimi =' admin ', avain_tiedostonimi =' ssh_key.pem ', passphrase =' AdminPassphrase ')
asiakas.kiinni()

Komentojen suorittaminen SSH: n kautta

Kun pääset järjestelmään SSH: n avulla (Paramikon kautta), voit suorittaa sarjan komentoja. Harkitse seuraavaa koodinpätkää:

asiakas = SSHClient ()
asiakas.load_system_host_keys ()
asiakas.connect ('linuxhint.com ')
stdin, stdout, stderr = asiakas.exec_command ('bash')
stdin.kiinni()
stdout.kiinni()
stderr.kiinni()
asiakas.kiinni()

Tässä vaiheessa osaat käyttää Paramiko-kirjastoa SSH: n automatisointiin. Kuten voitte kuvitella, tämä ei ole kattava Paramiko-opas, emmekä sukella yksityiskohtiin, jotka liittyvät työkalun toimintaan. Tavoitteena oli näyttää sen toteutus.

Lisätietoja on kattavammissa materiaaleissa, kuten:

https: // docs.paramiko.org / fi / vakaa /
https: // github.com / paramiko / paramiko

Mikä on Netmiko?

Netmiko on erittäin suosittu ja samanlainen kuin Paramiko muutamalla merkittävällä erolla:

Kun työskentelet tosielämän verkoissa, törmäät erilaisiin laitemalleihin. Tarvitset siis luotettavan työkalun, joka voi auttaa sinua automatisoimaan prosessin. Joissakin tapauksissa et voi käyttää Paramikoa laitetukirajoitusten takia, mikä johtaa viiveisiin ja kaatumisiin - voit tarkistaa tuetut laitteet virallisesta dokumentaatiosta. Se on myös huomattavasti hitaampi kuin Netmiko.

Paramiko on enemmän yleinen SSH-moduuli, jota voit käyttää tiettyjen SSH-tehtävien automatisointiin. Sen sijaan Netmiko on laajempi ja hyvin optimoitu verkkolaitteiden, kuten kytkimien ja reitittimien, hallintaan.

Abstraktio on toinen Netmikon käytön etu. Netmiko tarjoaa yksinkertaisen toiminnon, jonka avulla voit poistaa sivun käytöstä. Esimerkiksi SSH-istunnon lähtö voi olla useampi kuin yksi sivu. Käyttämällä tavallisia SSH-istuntoja sinun on lisättävä syötemäinen tila seuraavan sivun näyttämiseksi. Netmiko tarjoaa sinulle mahdollisuuden ohittaa tämän.

Netmikon edut Paramikoon nähden ovat:

Kuinka asentaa Netmiko

Netmikon asentaminen on myös suhteellisen helppoa:

Sinun tarvitsee vain varmistaa, että järjestelmään on asennettu Python ja pip, ja suorittaa komento:

pip asenna netmiko
python -m pip asenna netmiko

Yhdistäminen SSH: hen Netmikolla

Yhdistäminen laitteen SSH-istuntoihin Netmikolla on hyvin helppoa. Muista, että Netmiko on optimoitu enemmän laitteille kuten reitittimille eikä yleiselle SSH: lle.

Harkitse alla olevaa koodinpätkää.

#import moduulit
netmikon tuonnista ConnectHandler
# laitetietoa sanakirjamuodossa.
device_config =
“Device_type”: “cisco_ios”,
“Ip”: “192.168.0.1 ”,
"Käyttäjänimi": "admin",
“Salasana”: “salasana”,
"Salainen": "salasana"

yhteys = ConnectHandler (** device_config)

Yllä olevan yksinkertaisen koodin avulla sinulla on SSH-yhteys laitteeseen. Voit välittää laitetiedot myös suoraan sanakirjan sijaan.

Kun sinulla on SSH-istunto, voit suorittaa komennot send_command () -toiminnon avulla. Netmikon tukemia toimintoja ovat:

Netmikon yleisesti käytetyt menetelmät:

Kuten aiemmin mainittiin, tämä ei ole opas Netmikon käytöstä, vaan yksinkertainen ohje siitä, mitä Netmiko ja Paramiko ovat. Tarkista virallisista asiakirjoista lisätietoja.

https: // github.fi / ktbyers / netmiko

Johtopäätös

Tässä pikaoppaassa keskusteltiin siitä, miten paramikoa voidaan käyttää yleisiin SSH-yhteyksiin ja Netmiko-verkkolaitteiden hallintaan, havainnollistaen näiden kahden välisiä eroja.

Lopuksi:

Paramiko Netmiko
Hyödyllinen yleiseen ssh-käyttöön Hyödyllisin verkkolaitteen kokoonpanossa.
Rajoitettu tuki monille verkkolaitteille. Tukee laajaa valikoimaa verkkolaitteita.
Control & manage mouse movement between multiple monitors in Windows 10
Dual Display Mouse Manager lets you control & configure mouse movement between multiple monitors, by slowing down its movements near the border. Windo...
WinMouse lets you customize & improve mouse pointer movement on Windows PC
If you want to improve the default functions of your mouse pointer use freeware WinMouse. It adds more features to help you get the most out of your h...
Mouse left-click button not working on Windows 10
If you are using a dedicated mouse with your laptop, or desktop computer but the mouse left-click button is not working on Windows 10/8/7 for some rea...