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を実行しているデバイスでテキストベースのパスワードが設定されたアカウントを持っていますが、そのデバイスのプロキシ設定を定義するピラーファイルでユーザーに間違ったパスワードまたはパスワードが提供されていません。
ユーザはアカウントを持っており、SSH キーを使用して Junos OS を実行しているデバイスで認証しますが、デバイスまたはプロキシ ミニオン サーバのいずれからも SSH キーにアクセスできません。
Junosプロキシが接続を確立しようとしたときに自動的に照会されるプロキシミニオンサーバー上のユーザーのSSH構成ファイルで、そのデバイスでの認証に関する誤った設定が定義されています。
プロキシ情報を定義するピラーファイルまたはSSH構成ファイルでユーザーを指定しない場合、ユーザーはデフォルトで現在のユーザーになります。
解決
以下の構成項目を検証して、ユーザーが管理対象デバイスで認証できることを確認します。
Junos OSを実行しているデバイスで認証するSalt ユーザーは、デバイスにログイン アカウントを持っており、そのアカウントにテキストベースのパスワードまたは SSH 公開キーが設定されていること。
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
特定のデバイスのプロキシ設定を含むピラーファイルを更新する場合、変更を有効にするには、プロキシミニオンサーバーでそのデバイスのプロキシミニオンプロセスを再起動し、Salt マスターで新しい Salt キーを受け入れる必要がある場合があります。