Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Junos PyEZユーザーの認証

概要 Junos PyEZアプリケーションは、パスワードやSSHキーなど、標準のSSH認証メカニズムを使用してユーザーを認証できます。

Junos PyEZ ユーザー認証の概要

Junos PyEZを使用すると、シリアルコンソール接続、telnet、またはSSH経由のNETCONFセッションを使用して、Junosデバイスに直接接続して管理することができます。さらに、Junos PyEZは、デバイスの CONSOLE ポートに接続されているコンソールサーバーへのtelnetまたはSSH接続を介したデバイスへの接続もサポートしています。デバイスは、接続方法に応じて、パスワードまたはその他の標準SSH認証メカニズムを使用してユーザーを認証できる必要があります。SSH 接続を使用して Junos デバイスを管理する場合、デバイスにアクセスする最も便利で安全な方法は、SSH キーを設定することです。SSHキーにより、リモートデバイスは信頼できるユーザーを識別できます。

管理対象のJunosデバイスにアクセスできるユーザーアカウントを使用して、デバイス操作を実行できます。クラスの新しいインスタンス jnpr.junos.device.Device を作成するときにユーザーを明示的に定義できますが、パラメーター リストでユーザーを指定しない場合、ユーザーのデフォルトは $USERになります。

SSH接続の場合、引数リストに別の設定ファイルを指定する引数が含まれていないssh_config限り、Junos PyEZはデフォルトのSSH設定ファイル(~Device/.ssh/config)に対して自動的にクエリーを実行します。Junos PyEZは、ユーザーファイルやIDファイルなど、引数リストの引数Deviceによって上書きされない、指定された接続のSSH設定ファイル内の関連設定を使用します。

Junos PyEZクライアントがSSHを使用してJunosデバイスまたはデバイスに接続されているコンソールサーバーに接続する場合、Junos PyEZはまずSSHパブリックキーベースの認証を試み、次にパスワードベースの認証を試みます。SSHキーが使用されている場合、提供されたパスワードが秘密キーのロックを解除するためのパスフレーズとして使用されます。パスワードベースの認証を使用する場合、指定されたパスワードがデバイスパスワードとして使用されます。SSH公開キーベースの認証が使用されており、SSHプライベートキーのパスフレーズが空の場合、パスワードは必要ありません。ただし、空のパスフレーズを含むSSHプライベートキーは推奨されません。

ユーザー名とパスワードの認証資格情報を、環境に適した安全な方法で取得するのはユーザーの責任です。暗号化されていない形式で資格情報を格納するのではなく、スクリプトを呼び出すたびにこれらの認証資格情報の入力を求めることをお勧めします。

パスワードを使用してJunos PyEZユーザーを認証する

パスワードを使用してJunos PyEZユーザーを認証するには、次の手順に従います。

  1. 任意のエディターで、 .py ファイル拡張子を使用する新しいファイルを作成します。

    この例では、ファイル名 junos-pyez-pw.py を使用しています。

  2. 接続先のホスト名と、Junos デバイスのユーザー名とパスワードの入力を求めるコードを追加し、各値を変数に格納します。
  3. Junos PyEZクライアントがコンソール サーバーへのSSH接続を介してデバイスに接続する場合は、コンソール サーバーのユーザー名とパスワードの入力を求めるコードを含め、各値を変数に格納します。
  4. Deviceコンストラクター引数リストで、次の操作を行います。
    • 引数を host ホスト名を含む変数に設定します

    • user Junos OSのログイン資格情報を含む変数に および passwd 引数を設定します

    • Junos PyEZクライアントがSSHを使用してコンソールサーバー経由で接続する場合は、コンソールサーバーのログイン資格情報を含む変数にandcs_passwd引数を設定しますcs_user

    • 接続方法に必要な追加の引数を含めます

    次の例は、さまざまな接続方法ごとのサンプル コードを示しています。

    メモ:

    Junos OS を実行するすべてのプラットフォームでは、デフォルトで root ユーザーのみが設定され、パスワードはありません。Junos PyEZ を使用して、コンソール接続を介して新規またはゼロ化されたデバイスを最初に設定する場合は、 を使用し user='root'、 パラメータを passwd 省略します。

  5. Junos PyEZコードを実行します。この場合、ホスト名、Junos OSのユーザー名とパスワード、コンソール サーバーのユーザー名とパスワード(要求された場合)の入力を求められます。コマンド ラインではパスワードはエコーされません。

SSHキーを使用したJunos PyEZユーザーの認証

Junos PyEZアプリケーションでSSHキーを使用するには、まず構成管理サーバーでキーを生成し、Junos PyEZクライアントが接続する各デバイスで公開キーを設定する必要があります。Junos デバイスに直接接続するには、そのデバイスでキーを設定します。コンソール サーバー経由でJunosデバイスに接続するには、コンソール サーバーでキーを構成します。キーを使用するには、引数リストに適切な引数 Device を含める必要があります。

Junos PyEZでは、SSHキーエージェントにアクティブにロードされるSSHキー、デフォルトの場所またはユーザー定義の場所で生成されるキー、パスワード保護を使用または放棄するキーを利用できます。Junosデバイスに直接接続する場合、引数に Device パスワードまたはSSHキーファイルが指定されていない場合、Junos PyEZはまずSSHキーエージェントにアクティブにロードされているSSHキーをチェックし、次にデフォルトの場所にあるSSHキーをチェックします。コンソール・サーバーに接続する場合、パスワードで保護されたキーのみがサポートされます。

以下のセクションでは、SSHキーの生成、Junosデバイスでのキーの設定、キーを使用した管理対象デバイスへの接続の手順の概要を説明します。

SSHキーを生成および設定する

構成管理サーバーで SSH キーを生成し、Junos デバイスで公開キーを構成するには:

  1. サーバー上で、目的のユーザーの公開 SSH キーと秘密 SSH キーのペアを生成し、次に示す必須または必要なオプションを指定します。
  2. (オプション)ネイティブ SSH キーエージェントにキーをロードします。
  3. Junos PyEZアプリケーションが接続する各デバイスに公開鍵を設定します。これには、JunosデバイスまたはJunosデバイスに接続されたコンソールサーバーが含まれます。

    Junosデバイスで適切なユーザーアカウントで公開キーを設定する方法の1つは、ファイルからパブリックキーを読み込むことです。

  4. キーを使用してデバイスにログインし、キーが機能することを確認します。

Junos PyEZ アプリケーションでの参照 SSH キー

SSH キーペアを生成し、リモートデバイスで公開キーを構成した後、コンストラクターコードに Device 適切な引数を含めることで、キーを使用してデバイスに接続できます。引数は Device 、鍵の場所、鍵がパスワードで保護されているかどうか、鍵が ssh-agent などの SSH 鍵エージェントにアクティブにロードされているかどうか、およびユーザーの SSH 構成ファイルでそのホストの設定が既に定義されているかどうかによって決まります。次のセクションでは、さまざまなシナリオの概要を説明します。

アクティブにロードされたキーによるSSHキーエージェントを使用したユーザーの認証

SSH 鍵エージェントを使用すると、秘密鍵を安全に保管し、パスワードで保護された鍵のパスフレーズを繰り返し再入力する必要がなくなります。Junos PyEZを使用すると、クライアントは、SSHキーエージェントにアクティブにロードされているSSHキーを使用してJunosデバイスに直接接続できます。Junosデバイスに接続する際、引数に Device パスワードまたはSSHキーファイルが指定されていない場合、Junos PyEZはまずSSHキーエージェントにアクティブにロードされているSSHキーをチェックし、次にデフォルトの場所にあるSSHキーをチェックします。

ネイティブのSSHキーエージェントにアクティブにロードされているSSHキーを使用して、Junosデバイスに直接接続するには、次の手順に従います。

  • Device引数リストには、必要なホスト名と必要な変数を指定するだけで済みます。

パスワード保護なしでSSHキーを使用してユーザーを認証する

Junos PyEZを使用すると、クライアントはパスワードで保護されていないSSHプライベートキーを使用してJunosデバイスに直接接続できます。ただし、空のパスフレーズとともにSSHプライベートキーを使用することはお勧めしません。Junos PyEZは、空のパスフレーズを持つSSHプライベートキーを使用したコンソールサーバーへの接続をサポートしていません。

デフォルトの場所にあり、パスワードで保護されていない SSH キーを使用して Junos デバイスに接続するには、次の手順に従います。

  • Device引数リストには、必要なホスト名と必要な変数を指定するだけで済みます。

Junos PyEZは、まずアクティブなSSHキーエージェントにロードされているSSHキーをチェックし、次にデフォルトの場所にあるSSHキーをチェックします。

デフォルトの場所になく、パスワードで保護されていないSSHキーを使用してJunosデバイスに接続するには、次の手順に従います。

  • Device引数リストで、引数を ssh_private_key_file SSH 秘密キーのパスに設定します。

    メモ:

    ユーザーの SSH 構成ファイルで、特定のホストのローカル SSH 秘密キー ファイルのパスが既に指定されている場合は、引数リストの引数Deviceを省略ssh_private_key_fileできます。引数を含めると、ssh_private_key_fileユーザーのSSH設定ファイルでホストに定義されている既存のIdentityFile値が上書きされます。

パスワードで保護されたSSHキーファイルを使用したユーザーの認証

Junos PyEZクライアントは、パスワードで保護されたSSHキーファイルを使用して、Junosデバイスに直接接続したり、デバイスに接続されているコンソールサーバーに接続したりできます。

パスワードで保護されたSSHキーファイルを使用してJunosデバイスに直接接続するには、次の手順に従います。

  1. SSH 秘密キーのパスワードの入力を求め、その値を変数に格納するコードを含めます。
  2. Device引数リストで、SSH キーファイルのパスワードを含む変数を参照するように引数を設定しますpasswd

    キーがデフォルトの場所になく、ファイルパスがユーザーのSSH構成ファイルでまだ定義されていない場合は、引数を ssh_private_key_file プライベートキーのパスに設定します。

パスワードで保護されたSSHキーファイルを使用して、コンソールサーバー経由でJunosデバイスに接続するには、次の手順に従います。

  1. Junos デバイスのログイン資格情報の入力を求め、各値を変数に格納するコードを含めます。

  2. コンソール・サーバーのユーザー名とSSH秘密鍵のパスワードの入力を求め、各値を変数に格納するコードを含めます。

  3. Deviceコンストラクター引数リストで、次の操作を行います。

    • 引数を host コンソール・サーバーのホスト名またはIPアドレスに設定します

    • user Junos OSのログイン資格情報を含む変数に および passwd 引数を設定します

    • 引数を cs_user 、コンソール・サーバーのユーザー名を含む変数に設定します。

    • cs_passwd SSHキーファイルのパスワードを含む変数に引数を設定します

    • ssh_private_key_fileキーがデフォルトの場所になく、ファイルパスがユーザーのSSH設定ファイルでまだ定義されていない場合は、引数をプライベートキーのパスに設定します