Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Autenticar usuarios de Junos PyEZ

RESUMEN Las aplicaciones Junos PyEZ pueden autenticar a los usuarios mediante mecanismos de autenticación SSH estándar, incluidas contraseñas y claves SSH.

Descripción general de la autenticación de usuario de Junos PyEZ

Junos PyEZ le permite conectarse directamente y administrar dispositivos Junos mediante una conexión de consola serie, telnet o una sesión NETCONF a través de SSH. Además, Junos PyEZ también admite la conexión al dispositivo a través de una conexión Telnet o SSH a un servidor de consola conectado al puerto del CONSOLE dispositivo. El dispositivo debe poder autenticar al usuario mediante una contraseña u otros mecanismos de autenticación SSH estándar, según el método de conexión. Cuando administra dispositivos Junos a través de una conexión SSH, la forma más cómoda y segura de acceder a un dispositivo es configurar claves SSH. Las claves SSH permiten que el dispositivo remoto identifique a los usuarios de confianza.

Puede realizar operaciones de dispositivo con cualquier cuenta de usuario que tenga acceso al dispositivo Junos administrado. Puede definir explícitamente el usuario al crear una nueva instancia de la jnpr.junos.device.Device clase o, si no especifica un usuario en la lista de parámetros, el usuario predeterminado es $USER.

Para las conexiones SSH, Junos PyEZ consulta automáticamente el archivo de configuración SSH predeterminado en ~/.ssh/config, si existe, a menos que la lista de Device argumentos incluya el ssh_config argumento para especificar un archivo de configuración diferente. Junos PyEZ utiliza cualquier configuración relevante en el archivo de configuración SSH para la conexión dada que no se invalida por los argumentos de la lista de Device argumentos, como el usuario o el archivo de identidad.

Cuando el cliente de Junos PyEZ utiliza SSH para conectarse al dispositivo Junos o a un servidor de consola conectado al dispositivo, Junos PyEZ primero intenta la autenticación basada en clave pública SSH y, a continuación, intenta la autenticación basada en contraseña. Cuando las claves SSH están en uso, la contraseña proporcionada se utiliza como frase de contraseña para desbloquear la clave privada. Cuando se utiliza la autenticación basada en contraseña, la contraseña proporcionada se utiliza como contraseña del dispositivo. Si se usa la autenticación basada en clave pública SSH y la clave privada SSH tiene una frase de contraseña vacía, no se requiere una contraseña. Sin embargo, no se recomiendan las claves privadas SSH con frases de contraseña vacías.

Es responsabilidad del usuario obtener las credenciales de autenticación de nombre de usuario y contraseña de una manera segura y adecuada para su entorno. Se recomienda solicitar estas credenciales de autenticación durante cada invocación de la secuencia de comandos en lugar de almacenarlas en un formato sin cifrar.

Autenticar usuarios de Junos PyEZ con una contraseña

Para autenticar a un usuario de Junos PyEZ con una contraseña:

  1. En su editor favorito, cree un nuevo archivo que use la extensión de archivo .py .

    En este ejemplo se utiliza el nombre de archivo junos-pyez-pw.py.

  2. Incluya código que solicite el nombre de host al que conectarse y el nombre de usuario y la contraseña del dispositivo Junos y almacene cada valor en una variable.
  3. Si el cliente de Junos PyEZ se conecta al dispositivo a través de una conexión SSH a un servidor de consola, incluya código que solicite el nombre de usuario y la contraseña del servidor de consola y almacene cada valor en una variable.
  4. En la lista de argumentos del Device constructor:
    • Establezca el host argumento en la variable que contiene el nombre de host

    • Establezca los user argumentos y passwd en las variables que contienen las credenciales de inicio de sesión de Junos OS

    • Si el cliente de Junos PyEZ se conecta a través de un servidor de consola mediante SSH, establezca los argumentos y cs_passwd en las variables que contienen las credenciales de inicio de sesión del servidor de cs_user consola.

    • Incluya los argumentos adicionales necesarios para el método de conexión

    En el ejemplo siguiente se proporciona código de ejemplo para cada uno de los métodos de conexión diferentes:

    Nota:

    Todas las plataformas que ejecutan Junos OS solo tienen el usuario raíz configurado de forma predeterminada, sin contraseña. Cuando utilice Junos PyEZ para configurar inicialmente un dispositivo nuevo o a cero mediante una conexión de consola, utilice user='root'y omita el passwd parámetro.

  5. Ejecute el código de Junos PyEZ, que solicita el nombre de host, el nombre de usuario y la contraseña de Junos OS, y el nombre de usuario y la contraseña del servidor de consola (cuando se le solicite) y no hace eco de la contraseña en la línea de comandos.

Autenticar usuarios de Junos PyEZ mediante claves SSH

Para utilizar claves SSH en una aplicación de Junos PyEZ, primero debe generar las claves en el servidor de administración de configuración y configurar la clave pública en cada dispositivo al que se conectará el cliente de Junos PyEZ. Para conectarse directamente al dispositivo Junos, configure la clave en ese dispositivo. Para conectarse a un dispositivo Junos a través de un servidor de consola, configure la clave en el servidor de consola. Para utilizar las claves, debe incluir los argumentos adecuados en la lista de Device argumentos.

Junos PyEZ puede utilizar claves SSH que se cargan activamente en un agente de claves SSH, claves que se generan en la ubicación predeterminada o en una ubicación definida por el usuario, y claves que usan o renuncian a la protección con contraseña. Cuando se conecta directamente a un dispositivo Junos, si los argumentos no especifican una contraseña o un archivo de Device clave SSH, Junos PyEZ comprueba primero las claves SSH que se cargan activamente en el agente de claves SSH y, a continuación, comprueba las claves SSH en la ubicación predeterminada. Cuando se conecta a un servidor de consola, solo se admiten claves protegidas por contraseña.

En las siguientes secciones se describen los pasos para generar las claves SSH, configurar las claves en dispositivos Junos y usar las claves para conectarse al dispositivo administrado:

Generar y configurar claves SSH

Para generar claves SSH en el servidor de administración de configuración y configurar la clave pública en dispositivos Junos:

  1. En el servidor, genere el par de claves SSH público y privado para el usuario deseado y proporcione las opciones necesarias o deseadas, por ejemplo:
  2. (Opcional) Cargue la clave en el agente de clave SSH nativo.
  3. Configure la clave pública en cada dispositivo al que se conectará la aplicación Junos PyEZ, que podría incluir dispositivos Junos o un servidor de consola conectado al dispositivo Junos.

    Un método para configurar la clave pública en la cuenta de usuario adecuada en un dispositivo Junos es cargar la clave pública desde un archivo.

  4. Compruebe que la clave funciona iniciando sesión en el dispositivo con la clave.

Claves SSH de referencia en aplicaciones Junos PyEZ

Después de generar el par de claves SSH y configurar la clave pública en el dispositivo remoto, puede utilizar la clave para conectarse al dispositivo incluyendo los argumentos adecuados en el Device código constructor. Los Device argumentos vienen determinados por la ubicación de la clave, si la clave está protegida por contraseña, si la clave se carga activamente en un agente de clave SSH, como ssh-agent, y si el archivo de configuración SSH del usuario ya define la configuración para ese host. En las secciones siguientes se describen los distintos escenarios:

Autenticar al usuario mediante un agente de claves SSH con claves cargadas activamente

Puede usar un agente de claves SSH para almacenar de forma segura las claves privadas y evitar volver a escribir repetidamente la frase de contraseña para las claves protegidas por contraseña. Junos PyEZ permite que un cliente se conecte directamente a un dispositivo Junos mediante claves SSH que se cargan activamente en un agente de claves SSH. Al conectarse a un dispositivo Junos, si los argumentos no especifican una contraseña o un archivo de Device clave SSH, Junos PyEZ comprueba primero las claves SSH que se cargan activamente en el agente de claves SSH y, a continuación, comprueba las claves SSH en la ubicación predeterminada.

Para usar claves SSH que se cargan activamente en el agente de clave SSH nativo para conectarse directamente a un dispositivo Junos:

  • En la lista de Device argumentos, solo necesita proporcionar el nombre de host requerido y las variables deseadas.

Autenticar al usuario mediante claves SSH sin protección por contraseña

Junos PyEZ permite que un cliente se conecte directamente a un dispositivo Junos mediante claves privadas SSH que no tienen protección por contraseña, aunque no recomendamos usar claves privadas SSH con una frase de contraseña vacía. Junos PyEZ no admite la conexión a un servidor de consola mediante claves privadas SSH con una frase de contraseña vacía.

Para conectarse a un dispositivo Junos con claves SSH que se encuentran en la ubicación predeterminada y no tienen protección por contraseña:

  • En la lista de Device argumentos, solo necesita proporcionar el nombre de host requerido y las variables deseadas.

Junos PyEZ comprueba primero las claves SSH cargadas en cualquier agente de claves SSH activo y, a continuación, comprueba las claves SSH en la ubicación predeterminada.

Para conectarse a un dispositivo Junos con claves SSH que no están en la ubicación predeterminada y no tienen protección por contraseña:

  • En la Device lista de argumentos, establezca el ssh_private_key_file argumento en la ruta de acceso de la clave privada SSH.

    Nota:

    Si el archivo de configuración SSH del usuario ya especifica la ruta del archivo de clave privada SSH local para un host determinado, puede omitir el ssh_private_key_file argumento en la lista de Device argumentos. La inclusión del ssh_private_key_file argumento invalida cualquier valor existente IdentityFile definido para un host en el archivo de configuración SSH del usuario.

Autenticar al usuario mediante archivos de clave SSH protegidos por contraseña

Los clientes de Junos PyEZ pueden usar archivos de clave SSH protegidos por contraseña para conectarse directamente a un dispositivo Junos o para conectarse a un servidor de consola conectado al dispositivo.

Para conectarse directamente a un dispositivo Junos mediante un archivo de clave SSH protegido por contraseña:

  1. Incluya código que solicite la contraseña de clave privada SSH y almacene el valor en una variable.
  2. En la lista de Device argumentos, establezca el passwd argumento para hacer referencia a la variable que contiene la contraseña del archivo de clave SSH.

    Si la clave no está en la ubicación predeterminada y la ruta del archivo no está ya definida en el archivo de configuración SSH del usuario, establezca el ssh_private_key_file argumento en la ruta de acceso de la clave privada.

Para conectarse a un dispositivo Junos a través de un servidor de consola mediante un archivo de clave SSH protegido por contraseña:

  1. Incluye código que solicite las credenciales de inicio de sesión del dispositivo Junos y almacene cada valor en una variable.

  2. Incluya código que solicite el nombre de usuario del servidor de consola y la contraseña de clave privada SSH y almacene cada valor en una variable.

  3. En la lista de argumentos del Device constructor:

    • Establezca el host argumento en el nombre de host o la dirección IP del servidor de consola

    • Establezca los user argumentos y passwd en las variables que contienen las credenciales de inicio de sesión de Junos OS

    • Establezca el cs_user argumento en la variable que contiene el nombre de usuario del servidor de consola

    • Establezca el cs_passwd argumento en la variable que contiene la contraseña del archivo de clave SSH

    • Establezca el ssh_private_key_file argumento en la ruta de acceso de la clave privada, si la clave no está en la ubicación predeterminada y la ruta del archivo no está ya definida en el archivo de configuración SSH del usuario