Python

Apa perbedaan antara Paramiko dan Netmiko?

Apa perbedaan antara Paramiko dan Netmiko?

Ketika berbicara tentang jaringan, ada berbagai perspektif, dan seseorang tidak dapat menguasai cara berinteraksi dengan semua perangkat di dunia nyata. Namun, semua perangkat jaringan berbagi fungsi serupa yang, ketika dikuasai, dapat diotomatisasi.

Seperti disebutkan dalam tutorial saya yang lain, programmer malas dan selalu mencari untuk meningkatkan efisiensi-sehingga melakukan pekerjaan paling sedikit 🙂 -, dan ketika datang untuk mengotomatisasi masalah terkait jaringan, banyak yang sering mengambil kesempatan.

Dalam panduan singkat hari ini, saya akan memperkenalkan Anda untuk mengotomatisasi SSH menggunakan dua pustaka Python populer: Paramiko dan Netmiko. Kami akan membuat skrip python sederhana menggunakan dua perpustakaan untuk mengotomatisasi SSH dan berinteraksi dengan perangkat jaringan.

Saya memilih pendekatan ini karena panduan yang terutama berfokus pada perbedaan antara Paramiko dan Netmiko akan terlalu pendek-tabel sederhana sudah cukup-dan tidak konkrit. Dengan mengambil pendekatan ini, Anda akan lebih mampu bereksperimen dengan mereka dan melihat mana yang melakukan apa dan bagaimana.

Mari kita mulai:

Apa itu Paramiko??

Situs web resmi mendefinisikan Paramiko sebagai berikut:

“Paramiko adalah seekor Python (2.7, 3.4+) implementasi protokol SSHv2 yang menyediakan fungsionalitas klien dan server.”

Saya harap itu jelas. Pada dasarnya, itu berarti Paramiko adalah pustaka python untuk berinteraksi dengan SSH.

Sekarang:

Saat kita ingin masuk ke server, kita tahu bahwa kita pergi ke terminal-cmd, xterm, MobaXterm, atau hanya Terminal-login Gnome, lalu jalankan perintah.

Mari kita lihat bagaimana Paramiko dapat membantu dengan itu.

Cara Menginstal Paramiko

Untuk menggunakan Paramiko, kita perlu menginstalnya. Anda harus memiliki Python - sebaiknya python 2 - diinstal pada mesin Anda. Menggunakan pip, masukkan perintah di bawah ini untuk menginstal Paramiko.

sudo pip instal Paramiko
Python -m pip install paramiko

Jika Anda ingin membangun dari sumbernya, lihat repositori resmi Paramiko GitHub menggunakan sumber daya yang disediakan:

https://github.com/paramiko/paramiko

Menghubungkan ke SSH menggunakan Paramiko

Untuk terhubung ke SSH menggunakan Paramiko, kami menggunakan metode connect() , yang memerlukan parameter nama host-ini juga mendukung parameter lain, tetapi karena kami tidak memerlukannya, kami dapat mengabaikannya untuk saat ini.

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= Salah, gss_deleg_creds=Benar, gss_host=Tidak ada, banner_timeout=Tidak ada, auth_timeout=Tidak ada, gss_trust_dns=Benar, frasa sandi=Tidak ada, disable_algorithms=Tidak ada)

Menggunakan fungsi ini, yang tersedia di paramiko. Klien.Klien SSH.connect(), menghubungkan ke nama host yang ditentukan, dan mengautentikasinya. Sistem target diperiksa terhadap kunci sistem lokal yang ada (tepercaya).

Jika Anda memiliki file host tertentu, Anda dapat menggunakan metode load_host_keys() dan mengatur klien SSH Paramiko untuk menambahkan host yang tidak dikenal ke paramiko.KebijakanTambahOtomatis(). Jika Anda menggunakan klien dalam sistem yang tidak tepercaya, hindari menggunakan paramiko.KebijakanTambahOtomatis.

Menghubungkan SSH Dengan Kata Sandi

Dari metode connect, kita dapat melihat bahwa kita memiliki parameter username dan password yang dapat kita gunakan untuk terhubung ke sistem. Perhatikan kode di bawah ini untuk menghubungkan SSH melalui nama pengguna dan kata sandi.

dari utilitas impor paramiko, SSHClient, AutoAddPolicy
klien = SSHClient()
klien.load_system_host_keys()
klien.load_host_keys("/home/linuxhint/.ssh/known_hosts")
klien.set_missing_host_key_policy(AutoAddPolicy())
klien.hubungkan (nama host = "linuxhint.com", nama pengguna="admin", kata sandi="AdminPassword")
klien.Menutup()

Jika Anda mengalami masalah saat mengimpor kelas Paramiko SSHClient, lihat pertanyaan stackoverflow berikut:

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

Menghubungkan SSH Melalui Kunci

Seperti yang kita semua tahu, menghubungkan SSH melalui kunci lebih aman daripada menggunakan kata sandi mentah. Paramiko mengetahui hal ini dan memungkinkan Anda untuk meneruskan file kunci dan terhubung ke sistem target.

Perhatikan kode di bawah ini.

dari paramiko impor SSHClient
dari paramiko AutoAddPolicy
klien = SSHClient()
klien.load_system_host_keys()
klien.load_host_keys('/home/linuxhint/.ssh/known_hosts')
klien.set_missing_host_key_policy(AutoAddPolicy())
klien.connect('linuxhint.com',namapengguna='admin',key_filename='ssh_key.pem', frasa sandi='AdminPassphrase')
klien.Menutup()

Menjalankan Perintah Melalui SSH

Setelah Anda mendapatkan akses ke sistem menggunakan SSH (melalui Paramiko), Anda dapat menjalankan serangkaian perintah. Perhatikan cuplikan kode berikut:

klien = SSHClient()
klien.load_system_host_keys()
klien.connect('linuxhint.com')
stdin, stdout, stderr = klien.exec_command('bash")
stdin.Menutup()
stdout.Menutup()
stderr.Menutup()
klien.Menutup()

Pada titik ini, Anda tahu cara menggunakan perpustakaan Paramiko untuk mengotomatisasi SSH. Seperti yang dapat Anda bayangkan, ini bukan panduan Paramiko yang komprehensif, dan kami tidak membahas detail terkait dengan apa yang dilakukan alat tersebut. Tujuannya adalah untuk menunjukkan kepada Anda implementasinya.

Untuk informasi lebih lanjut, silakan merujuk ke materi yang lebih komprehensif seperti:

https://docs.paramiko.org/id/stabil/
https://github.com/paramiko/paramiko

Apa itu Netmiko??

Netmiko sangat populer dan mirip dengan Paramiko dengan beberapa perbedaan signifikan:

Saat bekerja di jaringan dunia nyata, Anda akan menemukan berbagai model perangkat. Dengan demikian, Anda memerlukan alat andal yang dapat membantu Anda mengotomatiskan prosesnya. Dalam beberapa kasus, Anda tidak dapat menggunakan Paramiko karena keterbatasan dukungan perangkat, yang menyebabkan kelambatan dan crash-Anda dapat memeriksa perangkat yang didukung di dokumentasi resmi. Ini juga jauh lebih lambat dari Netmiko.

Paramiko lebih merupakan modul SSH generik yang dapat Anda gunakan untuk mengotomatisasi tugas SSH tertentu. Sebaliknya, Netmiko lebih luas dan dioptimalkan dengan baik untuk mengelola perangkat jaringan seperti sakelar dan router.

Abstraksi adalah keuntungan lain menggunakan Netmiko. Netmiko menyediakan fungsi sederhana yang dapat Anda gunakan untuk menonaktifkan paging. Misalnya, output dari sesi SSH mungkin lebih dari satu halaman. Menggunakan sesi SSH biasa, Anda harus menambahkan ruang seperti input untuk menampilkan halaman berikutnya. Netmiko memberi Anda cara untuk mengesampingkan ini.

Kelebihan Netmiko dibandingkan Paramiko adalah:

Cara Menginstal Netmiko

Menginstal Netmiko juga relatif mudah:

Yang harus Anda lakukan adalah memastikan Anda telah menginstal Python dan pip di sistem Anda dan jalankan perintah:

pip install netmiko
python -m pip instal netmiko

Menghubungkan ke SSH menggunakan Netmiko

Menghubungkan ke sesi SSH perangkat menggunakan Netmiko sangat sederhana. Ingat bahwa Netmiko lebih dioptimalkan untuk perangkat seperti router dan bukan SSH generik.

Perhatikan cuplikan kode di bawah ini.

#impor modul
dari netmiko impor ConnectHandler
# info perangkat dalam format kamus.
perangkat_config =
“jenis_perangkat”: “cisco_ios”,
"ip": "192".168.0.1”,
“nama pengguna”: “admin”,
"kata sandi": "kata sandi",
"rahasia": "kata sandi"

koneksi = ConnectHandler(**device_config)

Menggunakan kode sederhana di atas, Anda akan memiliki koneksi SSH ke perangkat. Anda juga dapat meneruskan informasi perangkat secara langsung alih-alih meneruskannya ke kamus.

Setelah Anda memiliki sesi SSH, Anda dapat menjalankan perintah menggunakan fungsi send_command(). Fungsi yang didukung oleh netmiko meliputi:

Metode Netmiko yang umum digunakan:

Seperti yang disebutkan sebelumnya, ini bukan panduan tentang cara menggunakan Netmiko tetapi panduan sederhana tentang apa itu Netmiko dan Paramiko. Periksa dokumentasi resmi untuk informasi lebih lanjut.

https://github.com/ktbyers/netmiko

Kesimpulan

Dalam panduan singkat ini, kami membahas cara menggunakan paramiko untuk koneksi SSH generik dan manajemen perangkat jaringan Netmiko, yang menggambarkan perbedaan antara keduanya.

Untuk menyimpulkan:

Paramiko Netmiko
Berguna untuk penggunaan ssh umum Paling berguna untuk konfigurasi perangkat jaringan.
Dukungan terbatas untuk berbagai perangkat jaringan. Mendukung berbagai perangkat jaringan.
Game Terbaik untuk Dimainkan dengan Pelacakan Tangan
Oculus Quest baru-baru ini memperkenalkan ide hebat pelacakan tangan tanpa pengontrol. Dengan jumlah permainan dan aktivitas yang terus meningkat yang...
Cara Menampilkan Overlay OSD di Aplikasi dan Game Linux Layar Penuh
Memainkan game layar penuh atau menggunakan aplikasi dalam mode layar penuh bebas gangguan dapat memutus Anda dari informasi sistem yang relevan yang ...
5 Kartu Tangkap Game Teratas
Kita semua telah melihat dan menyukai gameplay streaming di YouTube. PewDiePie, Jakesepticye, dan Markiplier hanyalah beberapa pemain top yang telah m...