Paramiko ile SSH üzerinden RouterOS config'i düz metin olarak çıkarma

RouterOS’un /export komutu tam yapılandırmayı düz metin RouterOS komutları olarak basar — sürüm kontrolü ve filo denetimleri için ideal. Bu post, Python’un Paramiko kütüphanesiyle bunu SSH üzerinden nasıl çekeceğinizi gösterir.

RouterOS 7.24.2 çalıştıran bir MikroTik hEX PoE Lite’ta test edildi.

TL;DR

export_config.py
import paramiko

client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
client.connect("192.168.88.1", username="admin", password="your-password",
               timeout=10, allow_agent=False, look_for_keys=False)

stdin, stdout, stderr = client.exec_command("/export")
config = stdout.read().decode("utf-8", errors="replace")

with open("router.rsc", "w") as f:
    f.write(config)

client.close()

Sonuç, RouterOS sürüm başlığıyla (# 2026-09-26 ... by RouterOS 7.24.2) başlayan ve tam config’in RouterOS CLI komutları olarak izlediği, geri yüklemeye hazır bir .rsc dosyasıdır.

Notlar

  • /export varsayılan olarak secret’ları atlar. Parolaları/anahtarları dahil etmek için /export show-sensitive kullanın (bunu yalnızca güvenli bir konuma yapın).
  • Agent probunu atlamak için allow_agent=False, look_for_keys=False etkinleştirin — RouterOS’un SSH sunucusu seçicidir ve bu, auth takılmalarını önler.
  • /user ssh-keys import ile bir anahtar içe aktardıysanız key auth da çalışır — connect()‘e key_filename= geçin.
  • Aynı kanal üzerinden yararlı eş komutlar: /system resource print (sürüm, uptime), /system identity print, /file print (saklı dosyalar).

Check out similar posts by category: Ağ SSH