Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Authentifier les utilisateurs Junos PyEZ

RÉSUMÉ Les applications Junos PyEZ peuvent authentifier les utilisateurs à l’aide des mécanismes d’authentification SSH standard, notamment les mots de passe et les clés SSH.

Présentation de l’authentification utilisateur Junos PyEZ

Junos PyEZ vous permet de vous connecter directement aux équipements Junos et de les gérer à l’aide d’une connexion de console série, telnet ou d’une session NETCONF via SSH. En outre, Junos PyEZ prend également en charge la connexion à l’équipement via une connexion telnet ou SSH à un serveur de console connecté au port de CONSOLE l’appareil. L’appareil doit pouvoir authentifier l’utilisateur à l’aide d’un mot de passe ou d’autres mécanismes d’authentification SSH standard, selon la méthode de connexion. Lorsque vous gérez des périphériques Junos via une connexion SSH, le moyen le plus pratique et le plus sûr d’accéder à un périphérique consiste à configurer des clés SSH. Les clés SSH permettent à l’appareil distant d’identifier les utilisateurs de confiance.

Vous pouvez effectuer des opérations sur les périphériques à l’aide de n’importe quel compte d’utilisateur ayant accès au périphérique Junos géré. Vous pouvez définir explicitement l’utilisateur lors de la création d’une nouvelle instance de la jnpr.junos.device.Device classe ou, si vous ne spécifiez pas d’utilisateur dans la liste des paramètres, l’utilisateur utilise $USERpar défaut .

Pour les connexions SSH, Junos PyEZ interroge automatiquement le fichier de configuration SSH par défaut à l’adresse ~/.ssh/config, s’il en existe un, sauf si la liste d’arguments Device inclut l’argument ssh_config permettant de spécifier un autre fichier de configuration. Junos PyEZ utilise tous les paramètres pertinents dans le fichier de configuration SSH pour la connexion donnée qui ne sont pas remplacés par les arguments de la Device liste d’arguments, tels que l’utilisateur ou le fichier d’identité.

Lorsque le client Junos PyEZ utilise SSH pour se connecter au périphérique Junos ou à un serveur de console connecté au périphérique, Junos PyEZ tente d’abord l’authentification SSH basée sur une clé publique, puis tente l’authentification par mot de passe. Lorsque des clés SSH sont utilisées, le mot de passe fourni est utilisé comme mot de passe pour déverrouiller la clé privée. Lorsque l’authentification par mot de passe est utilisée, le mot de passe fourni est utilisé comme mot de passe de l’appareil. Si l’authentification par clé publique SSH est utilisée et que la clé privée SSH a une phrase secrète vide, un mot de passe n’est pas nécessaire. Toutefois, les clés privées SSH avec des phrases de passe vides ne sont pas recommandées.

Il est de la responsabilité de l'utilisateur d'obtenir les identifiants d'authentification du nom d'utilisateur et du mot de passe d'une manière sécurisée et adaptée à son environnement. Il est recommandé de demander ces informations d’identification d’authentification lors de chaque appel du script plutôt que de stocker les informations d’identification dans un format non chiffré.

Authentifier les utilisateurs Junos PyEZ à l’aide d’un mot de passe

Pour authentifier un utilisateur Junos PyEZ à l’aide d’un mot de passe :

  1. Dans votre éditeur préféré, créez un nouveau fichier qui utilise l’extension de fichier .py .

    Cet exemple utilise le nom de fichier junos-pyez-pw.py.

  2. Incluez un code qui invite à entrer le nom d’hôte auquel vous devez vous connecter, ainsi que le nom d’utilisateur et le mot de passe du périphérique Junos, et stocke chaque valeur dans une variable.
  3. Si le client Junos PyEZ se connecte à l’équipement via une connexion SSH à un serveur de console, incluez un code qui invite à entrer le nom d’utilisateur et le mot de passe du serveur de console et stocke chaque valeur dans une variable.
  4. Dans la liste des arguments du Device constructeur :
    • Définissez l’argument host sur la variable contenant le nom d’hôte

    • Définissez les user arguments et passwd sur les variables contenant les identifiants de connexion Junos OS

    • Si le client Junos PyEZ se connecte via un serveur de console à l’aide de SSH, définissez les cs_user arguments et cs_passwd sur les variables contenant les informations d’identification de connexion du serveur de console.

    • Incluez tous les arguments supplémentaires requis pour la méthode de connexion

    L’exemple suivant fournit un exemple de code pour chacune des différentes méthodes de connexion :

    Note:

    Toutes les plates-formes exécutant Junos OS ont uniquement l’utilisateur root configuré par défaut, sans mot de passe. Lorsque vous utilisez Junos PyEZ pour configurer initialement un nouveau périphérique ou un périphérique remis à zéro via une connexion à la console, utilisez user='root'et omettez le passwd paramètre.

  5. Exécutez le code Junos PyEZ, qui invite à entrer le nom d’hôte, le nom d’utilisateur et le mot de passe Junos OS, ainsi que le nom d’utilisateur et le mot de passe du serveur de console (le cas échéant) sans faire écho au mot de passe sur la ligne de commande.

Authentifier les utilisateurs Junos PyEZ à l’aide de clés SSH

Pour utiliser des clés SSH dans une application Junos PyEZ, vous devez d’abord générer les clés sur le serveur de gestion de la configuration et configurer la clé publique sur chaque périphérique auquel le client Junos PyEZ se connectera. Pour vous connecter directement au périphérique Junos, configurez la clé sur ce périphérique. Pour vous connecter à un périphérique Junos via un serveur de console, configurez la clé sur le serveur de console. Pour utiliser les clés, vous devez inclure les arguments appropriés dans la Device liste des arguments.

Junos PyEZ peut utiliser des clés SSH chargées activement dans un agent de clés SSH, des clés générées à l’emplacement par défaut ou défini par l’utilisateur, ainsi que des clés qui utilisent ou renoncent à la protection par mot de passe. Lors d’une connexion directe à un périphérique Junos, si les Device arguments ne spécifient pas de mot de passe ou de fichier de clé SSH, Junos PyEZ vérifie d’abord les clés SSH qui sont activement chargées dans l’agent de clés SSH, puis recherche les clés SSH à l’emplacement par défaut. Lors de la connexion à un serveur de console, seules les clés protégées par mot de passe sont prises en charge.

Les sections suivantes décrivent les étapes de génération des clés SSH, de configuration des clés sur les équipements Junos et d’utilisation des clés pour se connecter au périphérique géré :

Générer et configurer des clés SSH

Pour générer des clés SSH sur le serveur de gestion de la configuration et configurer la clé publique sur les équipements Junos :

  1. Sur le serveur, générez la paire de clés SSH publique et privée pour l’utilisateur souhaité et fournissez les options requises ou souhaitées, par exemple :
  2. (Facultatif) Chargez la clé dans l’agent de clé SSH natif.
  3. Configurez la clé publique sur chaque périphérique auquel l’application Junos PyEZ se connectera, ce qui peut inclure des périphériques Junos ou un serveur de console connecté au périphérique Junos.

    Pour configurer la clé publique sous le compte d’utilisateur approprié sur un équipement Junos, il suffit de charger la clé publique à partir d’un fichier.

  4. Vérifiez que la clé fonctionne en vous connectant à l’appareil à l’aide de la clé.

Référencer les clés SSH dans les applications Junos PyEZ

Après avoir généré la paire de clés SSH et configuré la clé publique sur le périphérique distant, vous pouvez utiliser la clé pour vous connecter au périphérique en incluant les arguments appropriés dans le Device code du constructeur. Les Device arguments sont déterminés par l’emplacement de la clé, si la clé est protégée par un mot de passe, si la clé est activement chargée dans un agent de clé SSH, tel que ssh-agent, et si le fichier de configuration SSH de l’utilisateur définit déjà les paramètres pour cet hôte. Les sections suivantes décrivent les différents scénarios :

Authentifier l’utilisateur à l’aide d’un agent de clé SSH avec des clés chargées activement

Vous pouvez utiliser un agent de clé SSH pour stocker les clés privées en toute sécurité et éviter de retaper à plusieurs reprises la phrase secrète des clés protégées par mot de passe. Junos PyEZ permet à un client de se connecter directement à un équipement Junos à l’aide de clés SSH chargées activement dans un agent de clés SSH. Lors de la connexion à un périphérique Junos, si les Device arguments ne spécifient pas de mot de passe ou de fichier de clé SSH, Junos PyEZ vérifie d’abord les clés SSH qui sont activement chargées dans l’agent de clés SSH, puis recherche les clés SSH à l’emplacement par défaut.

Pour utiliser des clés SSH chargées activement dans l’agent de clés SSH natif afin de vous connecter directement à un périphérique Junos :

  • Dans la liste d’arguments Device , vous n’avez qu’à fournir le nom d’hôte requis et les variables souhaitées.

Authentifier l’utilisateur à l’aide de clés SSH sans protection par mot de passe

Junos PyEZ permet à un client de se connecter directement à un périphérique Junos à l’aide de clés privées SSH sans protection par mot de passe, bien que nous vous déconseillions d’utiliser des clés privées SSH avec une phrase secrète vide. Junos PyEZ ne prend pas en charge la connexion à un serveur de console à l’aide de clés privées SSH avec une phrase secrète vide.

Pour vous connecter à un équipement Junos à l’aide de clés SSH qui se trouvent à l’emplacement par défaut et qui ne sont pas protégées par mot de passe :

  • Dans la liste d’arguments Device , vous n’avez qu’à fournir le nom d’hôte requis et les variables souhaitées.

Junos PyEZ vérifie d’abord les clés SSH chargées dans un agent de clé SSH actif, puis vérifie les clés SSH à l’emplacement par défaut.

Pour vous connecter à un équipement Junos à l’aide de clés SSH qui ne se trouvent pas à l’emplacement par défaut et qui ne sont pas protégées par mot de passe :

  • Dans la liste des Device arguments, définissez l’argument ssh_private_key_file sur le chemin d’accès de la clé privée SSH.

    Note:

    Si le fichier de configuration SSH de l’utilisateur spécifie déjà le chemin d’accès au fichier de clé privée SSH local pour un hôte donné, vous pouvez omettre l’argument ssh_private_key_file dans la Device liste des arguments. L’inclusion de l’argument ssh_private_key_file remplace toute valeur existante IdentityFile définie pour un hôte dans le fichier de configuration SSH de l’utilisateur.

Authentifier l’utilisateur à l’aide de fichiers de clés SSH protégés par mot de passe

Les clients Junos PyEZ peuvent utiliser des fichiers de clés SSH protégés par mot de passe pour se connecter directement à un équipement Junos ou à un serveur de console connecté au périphérique.

Pour vous connecter directement à un équipement Junos à l’aide d’un fichier de clé SSH protégé par mot de passe :

  1. Incluez du code qui demande le mot de passe de la clé privée SSH et stocke la valeur dans une variable.
  2. Dans la liste des Device arguments, définissez l’argument passwd pour référencer la variable contenant le mot de passe du fichier de clé SSH.

    Si la clé n’est pas à l’emplacement par défaut et que le chemin d’accès au fichier n’est pas déjà défini dans le fichier de configuration SSH de l’utilisateur, définissez l’argument ssh_private_key_file sur le chemin de la clé privée.

Pour vous connecter à un périphérique Junos via un serveur de consoles à l’aide d’un fichier de clé SSH protégé par mot de passe :

  1. Incluez du code qui demande les informations d’identification de connexion pour le périphérique Junos et stocke chaque valeur dans une variable.

  2. Incluez du code qui invite à entrer le nom d’utilisateur du serveur de console et le mot de passe de la clé privée SSH et stocke chaque valeur dans une variable.

  3. Dans la liste des arguments du Device constructeur :

    • Définissez l’argument host sur le nom d’hôte ou l’adresse IP du serveur de consoles

    • Définissez les user arguments et passwd sur les variables contenant les identifiants de connexion Junos OS

    • Définissez l’argument cs_user sur la variable contenant le nom d’utilisateur du serveur de console

    • Définissez l’argument cs_passwd sur la variable contenant le mot de passe du fichier de clé SSH

    • Définissez l’argument ssh_private_key_file sur le chemin de la clé privée, si la clé n’est pas à l’emplacement par défaut et que le chemin d’accès au fichier n’est pas déjà défini dans le fichier de configuration SSH de l’utilisateur