Python

Apakah perbezaan antara Paramiko dan Netmiko?

Apakah perbezaan antara Paramiko dan Netmiko?

Ketika berhubungan dengan jaringan, ada berbagai perspektif, dan seseorang tidak dapat menguasai bagaimana berinteraksi dengan semua peranti di dunia nyata. Walau bagaimanapun, semua peranti rangkaian mempunyai fungsi yang serupa yang, apabila dikuasai, dapat automatik.

Seperti yang disebutkan dalam tutorial saya yang lain, pengaturcara malas dan selalu berusaha untuk meningkatkan kecekapan-dengan itu melakukan kerja paling sedikit 🙂 -, dan ketika menyangkut masalah berkaitan rangkaian secara automatik, banyak yang sering melompat peluang.

Dalam panduan ringkas hari ini, saya akan memperkenalkan anda untuk mengautomasikan SSH menggunakan dua perpustakaan Python yang popular: Paramiko dan Netmiko. Kami akan membuat skrip python sederhana menggunakan dua perpustakaan untuk mengautomasikan SSH dan berinteraksi dengan peranti rangkaian.

Saya memilih pendekatan ini kerana panduan yang terutama tertumpu pada perbezaan antara Paramiko dan Netmiko akan terlalu pendek-jadual sederhana akan mencukupi-dan tidak konkrit. Dengan menggunakan pendekatan ini, anda akan dapat bereksperimen dengan mereka dan melihat yang melakukan apa dan bagaimana.

Mari kita mulakan:

Apa itu Paramiko?

Laman web rasmi mendefinisikan Paramiko sebagai berikut:

"Paramiko adalah Python (2.7, 3.4+) pelaksanaan protokol SSHv2 yang menyediakan fungsi pelanggan dan pelayan."

Saya harap itu jelas. Secara asasnya, ia bermaksud Paramiko adalah perpustakaan python untuk berinteraksi dengan SSH.

Sekarang:

Apabila kita mahu log masuk ke pelayan, kita tahu bahawa kita pergi ke terminal-cmd, xterm, MobaXterm, atau hanya log masuk Terminal Gnome, kemudian jalankan perintah.

Mari lihat bagaimana Paramiko dapat menolongnya.

Cara Memasang Paramiko

Untuk menggunakan Paramiko, kita perlu memasangnya. Anda mesti memasang Python - sebaiknya python 2 - dipasang pada mesin anda. Dengan menggunakan pip, masukkan arahan di bawah untuk memasang Paramiko.

sudo pip pasang Paramiko
Python -m pip memasang paramiko

Sekiranya anda ingin membina dari sumbernya, rujuk repositori Paramiko GitHub rasmi menggunakan sumber yang disediakan:

https: // github.com / paramiko / paramiko

Menyambung ke SSH menggunakan Paramiko

Untuk menyambung ke SSH menggunakan Paramiko, kami menggunakan kaedah connect (), yang memerlukan parameter nama host-ia juga menyokong parameter lain, tetapi oleh kerana kami tidak memerlukannya, kami boleh mengabaikannya buat masa ini.

sambung (nama host, port = 22, nama pengguna = Tiada, kata laluan = Tiada, pkey = Tiada, key_filename = Tiada, timeout = Tiada, allow_agent = True, look_for_keys = True, compress = False, sock = None, gss_auth = False, gss_kex = Salah, gss_deleg_creds = Betul, gss_host = Tiada, banner_timeout = Tidak ada, auth_timeout = Tiada, gss_trust_dns = Betul, frasa laluan = Tiada, dilumpuhkan_algoritma = Tiada)

Menggunakan fungsi ini, yang terdapat dalam paramiko. Pelanggan.Pelanggan SSH.sambungkan (), sambungkan ke nama host yang ditentukan, dan mengesahkannya. Sistem sasaran diperiksa terhadap kunci sistem tempatan yang ada (dipercayai).

Sekiranya anda mempunyai fail hos tertentu, anda boleh menggunakan kaedah load_host_keys () dan menetapkan klien Paramiko SSH untuk menambahkan mana-mana hos yang tidak diketahui ke paramiko.AutoAddPolicy (). Sekiranya anda menggunakan klien dalam sistem yang tidak dipercayai, elakkan menggunakan paramiko.AutoAddPolicy.

Menghubungkan SSH Dengan Kata Laluan

Dari kaedah sambung, kita dapat melihat bahawa kita mempunyai parameter nama pengguna dan kata laluan yang boleh kita gunakan untuk menyambung ke sistem. Pertimbangkan kod di bawah untuk menghubungkan SSH melalui nama pengguna dan kata laluan.

dari paramiko import util, SSHClient, AutoAddPolicy
pelanggan = SSHClient ()
pelanggan.load_system_host_keys ()
pelanggan.load_host_keys ("/ rumah / linuxhint /.ssh / dikenali_hosts ")
pelanggan.set_missing_host_key_policy (AutoAddPolicy ())
pelanggan.sambung (nama host = "linuxhint.com ", nama pengguna =" admin ", kata laluan =" AdminPassword ")
pelanggan.tutup ()

Sekiranya anda menghadapi masalah semasa mengimport kelas Pelanggan Paramiko SSH, rujuk soalan stackoverflow berikut:

https: // aliran tumpukan.com / soalan / 29378234 / python-import-paramiko-error-cannot-import-name-util

Menyambungkan SSH Melalui Kunci

Seperti yang kita semua ketahui, menyambungkan SSH melalui kunci lebih selamat daripada menggunakan kata laluan mentah. Paramiko mengetahui perkara ini dan membolehkan anda meneruskan fail kunci dan menyambung ke sistem sasaran.

Pertimbangkan kod di bawah.

dari paramiko import SSHClient
dari paramiko AutoAddPolicy
pelanggan = SSHClient ()
pelanggan.load_system_host_keys ()
pelanggan.load_host_keys ('/ rumah / linuxhint /.ssh / dikenali_hosts ')
pelanggan.set_missing_host_key_policy (AutoAddPolicy ())
pelanggan.sambung ('linuxhint.com ', nama pengguna =' admin ', key_filename =' ssh_key.pem ', frasa laluan =' AdminPassphrase ')
pelanggan.tutup ()

Menjalankan Perintah Melalui SSH

Sebaik sahaja anda mendapat akses ke sistem menggunakan SSH (melalui Paramiko), anda dapat menjalankan serangkaian perintah. Pertimbangkan coretan kod berikut:

pelanggan = SSHClient ()
pelanggan.load_system_host_keys ()
pelanggan.sambung ('linuxhint.com ')
stdin, stdout, stderr = pelanggan.exec_command ('bash')
stdin.tutup ()
stdout.tutup ()
stderr.tutup ()
pelanggan.tutup ()

Pada ketika ini, anda tahu bagaimana menggunakan perpustakaan Paramiko untuk mengautomasikan SSH. Seperti yang anda bayangkan, ini bukan panduan Paramiko yang komprehensif, dan kami tidak menyelidiki perincian yang berkaitan dengan apa yang dilakukan oleh alat ini. Tujuannya adalah untuk menunjukkan kepada anda pelaksanaannya.

Untuk maklumat lebih lanjut, sila rujuk bahan yang lebih komprehensif seperti:

https: // dokumen.paramiko.org / en / stabil /
https: // github.com / paramiko / paramiko

Apa itu Netmiko?

Netmiko sangat popular dan serupa dengan Paramiko dengan beberapa perbezaan yang ketara:

Semasa bekerja di rangkaian dunia nyata, anda akan menemui pelbagai model peranti. Oleh itu, anda memerlukan alat yang boleh dipercayai yang dapat membantu anda mengautomasikan prosesnya. Dalam beberapa keadaan, anda tidak dapat menggunakan Paramiko kerana keterbatasan sokongan peranti, menyebabkan kelewatan dan kerosakan - anda boleh memeriksa peranti yang disokong pada dokumentasi rasmi. Ia juga jauh lebih perlahan daripada Netmiko.

Paramiko lebih merupakan modul SSH generik yang boleh anda gunakan untuk mengautomasikan tugas SSH tertentu. Sebaliknya, Netmiko lebih luas dan dioptimumkan dengan baik untuk menguruskan peranti rangkaian seperti suis dan penghala.

Abstraksi adalah kelebihan lain menggunakan Netmiko. Netmiko menyediakan fungsi mudah yang boleh anda gunakan untuk mematikan paging. Sebagai contoh, output dari sesi SSH mungkin lebih dari satu halaman. Dengan menggunakan sesi SSH biasa, anda perlu menambahkan ruang seperti input untuk menunjukkan halaman seterusnya. Netmiko memberi anda cara untuk mengatasi perkara ini.

Kelebihan Netmiko berbanding Paramiko adalah:

Cara Memasang Netmiko

Memasang Netmiko juga agak mudah:

Yang harus anda lakukan ialah memastikan Python dan pip dipasang pada sistem anda dan melaksanakan perintah:

pip pasang netmiko
python -m pip memasang netmiko

Bersambung ke SSH menggunakan Netmiko

Menyambung ke sesi SSH peranti menggunakan Netmiko sangat mudah. Ingat bahawa Netmiko lebih dioptimumkan untuk peranti seperti penghala dan bukan SSH generik.

Pertimbangkan coretan kod di bawah.

#import modul
dari netmiko import ConnectHandler
# maklumat peranti dalam format kamus.
device_config =
"Device_type": "cisco_ios",
"Ip": "192.168.0.1 ",
"Nama pengguna": "pentadbir",
"Kata laluan": "kata laluan",
"Rahsia": "kata laluan"

sambungan = ConnectHandler (** device_config)

Dengan menggunakan kod mudah di atas, anda akan mempunyai sambungan SSH ke peranti. Anda juga boleh menyampaikan maklumat peranti secara langsung dan bukan menyebarkannya ke kamus.

Setelah anda menjalani sesi SSH, anda dapat menjalankan perintah menggunakan fungsi send_command (). Fungsi yang disokong oleh netmiko termasuk:

Kaedah yang biasa digunakan Netmiko:

Seperti yang telah disebutkan sebelumnya, ini bukan panduan bagaimana menggunakan Netmiko tetapi petunjuk ringkas tentang apa yang Netmiko dan Paramiko. Lihat dokumentasi rasmi untuk maklumat lebih lanjut.

https: // github.com / ktbyers / netmiko

Kesimpulannya

Dalam panduan ringkas ini, kami membincangkan cara menggunakan paramiko untuk sambungan SSH generik dan pengurusan peranti rangkaian Netmiko, yang menggambarkan perbezaan antara keduanya.

Untuk menyimpulkan:

Paramiko Netmiko
Berguna untuk penggunaan ssh generik Paling berguna untuk konfigurasi peranti rangkaian.
Sokongan terhad untuk pelbagai rangkaian peranti. Menyokong pelbagai rangkaian peranti.
Distro Linux Terbaik untuk Permainan pada tahun 2021
Sistem operasi Linux telah jauh dari tampilan asal, ringkas dan berasaskan pelayan. OS ini telah berkembang pesat dalam beberapa tahun kebelakangan in...
Cara menangkap dan streaming sesi permainan anda di Linux
Pada masa lalu, bermain permainan hanya dianggap sebagai hobi, tetapi seiring dengan berjalannya waktu, industri permainan menyaksikan pertumbuhan yan...
Permainan Terbaik untuk Dimainkan dengan Penjejakan Tangan
Oculus Quest baru-baru ini memperkenalkan idea hebat penjejakan tangan tanpa pengawal. Dengan jumlah permainan dan aktiviti yang semakin meningkat yan...