Junos OS ユーザーの Salt を認証する方法
Junos OS ユーザー認証用 Salt の概要
Salt を使用して Junos OS を実行しているデバイスを管理する場合、Junos プロキシ ミニオンは ZeroMQ イベント バスを使用して Salt マスターに接続し、Juniper Junos PyEZ ライブラリを 使用して、Junos OS を実行するデバイスと SSH を介した NETCONF セッションを確立します。管理対象デバイスは、接続方法に応じて、パスワードまたはその他の標準的な SSH 認証メカニズムを使用して Salt ユーザーを認証できる必要があります。Salt を使用して Junos OS を実行しているデバイスを管理する場合、デバイスにアクセスするための最も便利で安全な方法は SSH キーを設定することです。これにより、リモート デバイスで信頼できるユーザーを識別できます。または、特定のデバイスのプロキシ設定ファイルでユーザー名とパスワード認証資格情報を指定することもできます。
Salt を使用して Junos OS を実行しているデバイスに接続し、管理するには、Salt マスター上のピラー ファイルのキーの下 proxy
で、デバイスに必要な接続と認証情報を定義します。を指定 proxytype: junos
すると、Junos PyEZ Device()
コンストラクターで指定できるピラー データで、同じ接続および認証パラメーターの多くを定義できます。
次の柱ファイルの例は、指定proxytype: junos
した場合のキーの下で定義できる一般的な接続と認証パラメーターをproxy
示しています。表 1 は、パラメータの概要を示しています。
# /srv/pillar/router1-proxy.sls proxy: proxytype: junos host: router1.example.com username: saltuser password: lab123 # SSH password or SSH key file password ssh_config: /home/saltuser/.ssh/my_config # non-default SSH configuration file ssh_private_key_file: /home/saltuser/.ssh/id_rsa_salt # non-default SSH key location port: 830
パラメーター |
説明 |
---|---|
|
Junos OS を実行するデバイスのホスト名または IP アドレス。 |
|
Junos OS を実行するデバイスの認証に使用するユーザーまたはユーザーの SSH プライベート キー ファイルの秘密鍵の秘密鍵の使用使用。 |
|
Junos OS を実行するデバイスへの接続を確立するポート。 |
|
Salt が Junos プロキシ モジュールを使用して、Junos OS を実行しているデバイスとインターフェイスするように指定します。 |
|
プロキシ ミニオン サーバー上の Salt ユーザーの SSH 設定ファイルへのパス。SSH設定ファイルがデフォルトパスにある場合、このパラメーターを省略できます。 |
|
Junos プロキシが Junos OS を実行するデバイスの認証に使用するプロキシ ミニオン サーバー上の Salt ユーザーの SSH プライベート キー ファイルへのパス。ユーザーのSSHキーファイルがデフォルトパスにある場合、またはパスがSSH設定ファイルで既に定義されている場合は、このパラメーターを省略できます。 |
|
Junos OS を実行するデバイスの認証に使用され、Junos OS アカウント権限の下で Salt 操作が実行されるユーザー名。 |
Salt は、Junos OS を実行している管理対象デバイスにアクセスできる任意のユーザー アカウントを使用して、デバイス操作を実行できます。Junos OSを実行している特定のデバイスのプロキシ設定に パラメーターを含 username
めることで、ユーザーを明示的に指定できます。SSH設定ファイル内でユーザーを指定することもできます。ユーザーを指定しない場合、デフォルトは現在のユーザーになります。
Junos PyEZ を介した Salt 接続は、プロキシ ミニオン サーバー上の ~/.ssh/config にあるユーザーのデフォルト SSH 設定ファイル(存在する場合)に自動的にクエリーを実行します。ただし、そのデバイスのプロキシ設定に異なる設定ファイルを指定する引数が含まれている ssh_config
場合は除きます。Salt は、ユーザーやアイデンティティ ファイルなど、そのデバイスのプロキシ設定で定義されたパラメーターによって上書きされない特定の接続に対して SSH 設定ファイル内の関連する設定を使用します。
Junosプロキシは、まずSSHパブリックキーベースの認証を試み、次にパスワードベースの認証を試みます。Junosプロキシは、SSHキーエージェントにアクティブにロードされているSSHキーを確認し、デフォルトの場所でSSHキーを確認します。SSHキーが使用されている場合、秘密鍵のロックを解除するための秘密鍵の秘密鍵を秘密鍵の鍵を解除するための秘密鍵を秘密鍵の秘密鍵として使用します。パスワードベースの認証を使用する場合、提供されたパスワードがデバイスのパスワードとして使用されます。SSH公開鍵ベースの認証が使用されており、SSHプライベートキーに秘密鍵の秘密鍵が空の秘密鍵を使用している場合、パスワードは必要ありません。ただし、秘密鍵の秘密鍵を空の秘密鍵で使用することは推奨しません。
Salt マスターでは、柱の一番上のファイルは、デバイスのプロキシ設定を含む柱ファイルにプロキシ ID をマッピングします。
saltuser@salt-master:~$ cat /srv/pillar/top.sls base: 'router1': - router1-proxy
Junos OSを実行するデバイスのJunosプロキシミニオンプロセスを開始し、Saltマスターでキーを認証すると、設定された認証方法を使用して接続します。
saltuser@minion:~$ sudo salt-proxy --proxyid=router1 -d
saltuser@salt-master:~$ sudo salt-key -a router1
Salt サーバーの設定の詳細については、「 Junos OS 用 Salt をインストールする方法」を参照してください。
パスワードを使用した Salt ユーザーの認証
パスワードを使用して Salt ユーザーを認証するには、
SSHキーを使用した Salt ユーザーの認証
SSH キーを使用して Salt ユーザーを認証するには、まず Salt プロキシ ミニオン サーバーでキーを生成し、Salt が接続する Junos OS を実行する各デバイスでパブリック キーを設定する必要があります。キーを使用するには、Salt マスター上のデバイスのプロキシ設定に適切なパラメーターを含める必要があります。Junos PyEZを介した Salt 接続では、SSHキーエージェントにアクティブにロードされるSSHキー、デフォルトの場所またはユーザーが定義した場所で生成されるSSHキー、パスワード保護を使用または目的とするキーを使用できます。Junosプロキシは、まず、SSHキーエージェントにアクティブにロードされているSSHキーを確認し、次にユーザーの.sshディレクトリの下のデフォルトの場所にある SSH キーを確認します。
以下のセクションでは、SSHキーを生成する手順、Junos OSを実行するデバイスでキーを設定する手順、キーを使用して管理対象デバイスに接続する手順について説明します。
SSHキーの生成と設定
SaltプロキシミニオンサーバーでSSHキーを生成し、Junos OSを実行するデバイスでパブリックキーを設定するには:
Salt Proxy 設定ファイルでの SSH キーの参照
Junos OSを実行している管理対象デバイスでSSHキーペアを生成し、パブリックキーを設定した後、Junosプロキシはキーを使用してデバイスに接続できます。キーを使用するには、Salt マスター上のデバイスのプロキシ設定に適切なパラメーターを含める必要があります。必須 proxytype
および host
パラメーターに加えて、SSHキーを使用するために必要なパラメーターは、キーの場所、キーがパスワードで保護されているかどうか、キーがSSHキーエージェントにアクティブに読み込まれているかどうか、ユーザーのSSH設定ファイルがすでにそのホストの設定を定義しているかどうかによって決定されます。
Junosプロキシは、プロキシミニオンサーバーのデフォルトSSH設定ファイルが存在する場合、そのデバイスssh_config
のプロキシ設定に異なる設定ファイルを指定する引数がない限り、デフォルトのSSH設定ファイル(~/.ssh/config)をクエリーします。Salt は、そのデバイスのプロキシ設定で定義されたパラメーターによって上書きされない特定の接続に対して、SSH 設定ファイル内の関連する設定を使用します。デバイスに接続する際、Junosプロキシは最初にSSHキーエージェントにアクティブにロードされているSSHキーを確認し、ユーザーの.sshディレクトリの下のデフォルトの場所でSSHキーを確認します。
ネイティブSSHキーエージェントにアクティブに読み込まれているSSHキーを使用するには:
デバイスのプロキシ設定を含むピラー ファイルで、パラメータを定義する
username
必要があります。saltuser@salt-master:~$ cat /srv/pillar/router1-proxy.sls proxy: proxytype: junos host: router1.example.com username: saltuser port: 830
デフォルトの場所にあり、パスワード保護のないSSHキーを使用するには:
デバイスのプロキシ設定を含むピラーファイルでは、デバイスの認証にキーが使用されているユーザーにデフォルトではない場合にのみ、 パラメーターを指定
username
する必要があります。saltuser@salt-master:~$ cat /srv/pillar/router1-proxy.sls proxy: proxytype: junos host: router1.example.com username: saltuser port: 830
デフォルトの場所にない、またはパスワード保護を使用するSSHキーを使用するには:
デバイスのプロキシ設定を含むピラーファイルで、
ssh_private_key_file
プロキシミニオンサーバー上のSSHプライベートキーのパスにパラメータを設定し、キーがパスワードで保護されている場合は、SSHキーファイルのパスワードにパラメータを設定password
します。saltuser@salt-master:~$ cat /srv/pillar/router1-proxy.sls proxy: proxytype: junos host: router1.example.com username: saltuser password: ssh123 # SSH key file password ssh_private_key_file: /home/saltuser/.ssh/id_rsa_salt # SSH key in non-default location port: 830
メモ:ユーザーのSSH設定ファイルが特定のホストのSSHプライベートキーファイルパスをすでに指定している場合、プロキシ設定で パラメーターを
ssh_private_key_file
省略できます。このパラメータをssh_private_key_file
含めると、SSH設定ファイル内のホストに定義されている既存IdentityFile
の値が上書きされます。