Salt を使用して Junos OS 実行デバイスの管理を行う際の認証エラーのトラブルシューティング
問題
説明
Junos OSを実行しているデバイスのプロキシミニオンプロセスを開始し、Saltマスターでキーを受け入れると、Junosプロキシ(Salt用)がデバイスへの接続に失敗し、プロキシミニオンサーバー上のプロキシログファイルに認証失敗に関するエラーが記録されます。例えば:
saltuser@salt-master:~$ sudo salt 'router1' test.ping router1: Minion did not return. [No response]
saltuser@minion:~/.ssh$ sudo cat /var/log/salt/proxy ... File "/usr/lib/python3/dist-packages/salt/minion.py", line 3420, in _post_master_init proxy_init_fn(self.opts) File "/usr/lib/python3/dist-packages/salt/proxy/junos.py", line 109, in init thisproxy['conn'].open() File "/usr/local/lib/python3.6/dist-packages/jnpr/junos/device.py", line 1268, in open raise EzErrors.ConnectAuthError(self) jnpr.junos.exception.ConnectAuthError: ConnectAuthError(router1.example.com)
原因
Salt ユーザーは、以下の理由により、Junos OS を実行しているデバイスでの認証に失敗することがあります。
ユーザーが、Junos OSを実行しているデバイスのアカウントを持っていない。
ユーザーは、Junos OSを実行しているデバイスでテキストベースのパスワードが設定されたアカウントを持っていますが、そのデバイスのプロキシ構成を定義するpillarファイルで、間違ったパスワードまたはパスワードがユーザーに入力されていません。
ユーザーはアカウントを持っており、SSHキーを使用してJunos OSを実行しているデバイスで認証しますが、デバイスまたはプロキシミニオンサーバーのいずれからもSSHキーにアクセスできません。
プロキシミニオンサーバー上のユーザーのSSH設定ファイルは、Junosプロキシが接続を確立しようとすると自動的に照会されますが、そのデバイスでの認証に関する誤った設定が定義されています。
プロキシ情報を定義する pillar ファイルまたは SSH 構成ファイルでユーザーを指定しない場合、ユーザーはデフォルトで現在のユーザーになります。
ソリューション
次の構成項目を検証して、ユーザーが管理対象デバイスで認証できることを確認します。
Junos OSを実行しているデバイスで認証するSaltユーザーは、デバイスにログインアカウントを持ち、そのアカウントにテキストベースのパスワードまたはSSHパブリックキーが設定されています。
SSHキーが設定されている場合、ユーザーがプロキシミニオンサーバー上でキーにアクセスでき、キーを使用してデバイスに正常に接続できることを確認します。
ユーザーのSSH構成ファイルには、別のユーザー名やSSHキーファイルなど、接続が失敗する原因となるデバイスの設定が含まれていません。
Salt マスター上のデバイスのプロキシ構成に対して正しいパラメーターが指定されています。次に例を示します。
# /srv/pillar/router1-proxy.sls proxy: proxytype: junos host: router1.example.com username: saltuser password: lab123 # SSH password or SSH key file password ssh_private_key_file: /home/saltuser/.ssh/id_rsa_salt # non-default SSH key location on proxy minion server port: 830
特定のデバイスのプロキシ設定を含むピラーファイルを更新した場合、変更を有効にするには、プロキシミニオンサーバーでそのデバイスのプロキシミニオンプロセスを再起動し、ソルトマスターで新しいソルトキーを受け入れる必要がある場合があります。