paramikoを使って、ローカルポートからリモートまたはプライベートホスト上のサービスへ転送するSSHトンネルを開くPythonライブラリとCLI。
ktbyers/netmiko
複数ベンダーのネットワーク機器へのSSH CLI接続を簡素化し、showコマンドの実行や設定変更を行うPythonライブラリ。
- スター
- 4,319
- フォーク
- 1,393
- 未解決の Issue
- 60
- 最終コミット
- 8 日前
これは何?
NetmikoはParamikoを基盤とするPythonライブラリで、SSH経由でネットワーク機器に接続し、コマンドラインインターフェースを操作しやすくします。ネットワーク自動化では、showコマンドの出力を収集したり、設定変更を適用したりすることがよくあります。Netmikoは、幅広い機器プラットフォームでこうした操作を行えます。
ベンダーごとに低レベルのプロンプト処理や正規表現によるマッチングを書く代わりに、device_typeにcisco_iosなどを指定したデバイス辞書を渡し、send_commandやsend_config_setなどのメソッドを呼び出します。Netmikoが設定モードへの移行やプロンプト待ちを処理します。接続をコンテキストマネージャーとして使えば、セッションを確実に閉じられます。
このプロジェクトはPython 3.11以降に対応しており、pipでインストールできます。対応プラットフォームはプロジェクトのPLATFORMSドキュメントに記載されており、コードとあわせてサンプルやAPIドキュメントも公開されています。
主な機能
- 01ネットワーク機器にshowコマンドを送信し、その出力を取得します。
- 02設定変更を適用し、自動的に設定モードへ移行します。
- 03device_typeで選択できる、幅広いネットワークベンダーのプラットフォームに対応します。
- 04コンテキストマネージャーとして使用でき、SSHセッションを確実に切断できます。
- 05基盤となるSSHトランスポートにParamikoを使用します。
ユースケース
- 複数のスイッチやルーターから、インターフェースやルーティングの状態を収集する。
- ネットワーク機器全体にわたる、繰り返しの設定変更を自動化する。
- 機器の出力を読み取るネットワーク監査やコンプライアンス用のスクリプトを作成する。
クイックスタート
- 1
pipでNetmikoをインストールする
pip install netmiko - 2
デバイス辞書を作成し、ConnectHandlerでSSH接続を開く
- 3
send_commandでshowコマンドを実行する
使う前に知っておきたいこと
- Python 3.11以降が必要です。Python 3.10以前はサポートされなくなりました。
- SSH経由でCLI画面をスクレイピングする用途に特化しているため、APIやCLI以外の管理には適していません。
収録されている特集
トピック
よくある質問
- netmiko とは?
- 複数ベンダーのネットワーク機器へのSSH CLI接続を簡素化し、showコマンドの実行や設定変更を行うPythonライブラリ。 NetmikoはParamikoを基盤とするPythonライブラリで、SSH経由でネットワーク機器に接続し、コマンドラインインターフェースを操作しやすくします。ネットワーク自動化では、showコマンドの出力を収集したり、設定変更を適用したりすることがよくあります。Netmikoは、幅広い機器プラットフォームでこうした操作を行えます。
- netmiko は無料で使えますか?ライセンスは?
- netmiko は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- netmiko は今もメンテナンスされていますか?
- 活発にメンテナンス中。netmiko の最終コミットは 2026年10月30日 です。
- netmiko は何に使えますか?
- 複数のスイッチやルーターから、インターフェースやルーティングの状態を収集する。 ネットワーク機器全体にわたる、繰り返しの設定変更を自動化する。 機器の出力を読み取るネットワーク監査やコンプライアンス用のスクリプトを作成する。
- netmiko のインストール方法は?
- pipでNetmikoをインストールする: pip install netmiko デバイス辞書を作成し、ConnectHandlerでSSH接続を開く send_commandでshowコマンドを実行する
- netmiko はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/ktbyers/netmiko
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
TailscaleのWireGuardデータプレーン経由で、アカウントやコントロールプレーンなしに2台を接続するnetcat風CLI兼Goライブラリ。
TOML設定からポートフォワードを定義・開閉できる、Go製のコマンドラインSSHトンネル管理ツール。
ネットワークインフラをモデル化・文書化するオープンソースの情報源管理Webアプリケーション。自動化向けにREST APIとGraphQL APIを提供します。
Pythonプログラム向けに、クライアントとサーバーの両方の機能を提供する、SSHv2プロトコルの純粋なPython実装です。
SFTP経由でリモートファイルシステムをマウントし、SSHサーバー上のファイルをローカルフォルダのように閲覧・編集できるFUSEベースのクライアントです。