Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Autenticar usuários do Junos PyEZ

Visão geral da autenticação de usuários do Junos PyEZ

O Junos PyEZ permite que você se conecte diretamente e gerencie dispositivos Junos usando uma conexão de console em série, telnet ou uma sessão NETCONF sobre SSH. Além disso, o Junos PyEZ também aceita a conexão ao dispositivo por meio de uma conexão telnet ou SSH com um servidor de console conectado à porta do CONSOLE dispositivo. O dispositivo deve ser capaz de autenticar o usuário usando uma senha ou outros mecanismos padrão de autenticação de SSH, dependendo do método de conexão. Quando você gerencia dispositivos Junos por uma conexão SSH, a maneira mais conveniente e segura de acessar um dispositivo é configurar chaves SSH. As chaves SSH permitem que o dispositivo remoto identifique usuários confiáveis.

Você pode realizar operações de dispositivo usando qualquer conta de usuário que tenha acesso ao dispositivo Junos gerenciado. Você pode definir explicitamente o usuário ao criar uma nova instância da jnpr.junos.device.Device classe, ou se você não especificar um usuário na lista de parâmetros, o usuário padrão para $USER.

Para conexões SSH, o Junos PyEZ consulta automaticamente o arquivo de configuração SSH padrão em ~/.ssh/config, se houver, a menos que a Device lista de argumentos inclua o ssh_config argumento para especificar um arquivo de configuração diferente. O Junos PyEZ usa quaisquer configurações relevantes no arquivo de configuração SSH para uma determinada conexão que não seja substituída pelos argumentos da Device lista de argumentos, como o usuário ou o arquivo de identidade.

Quando o cliente Junos PyEZ usa SSH para se conectar ao dispositivo Junos ou a um servidor de console conectado ao dispositivo, o Junos PyEZ primeiro tenta a autenticação pública baseada em chave SSH e depois tenta a autenticação baseada em senha. Quando as chaves SSH estão em uso, a senha fornecida é usada como senha para desbloquear a chave privada. Quando a autenticação baseada em senha é usada, a senha fornecida é usada como senha do dispositivo. Se a autenticação baseada em chave pública SSH estiver sendo usada e a chave privada SSH tiver uma senha vazia, uma senha não será necessária. No entanto, as chaves privadas SSH com senhas vazias não são recomendadas.

É responsabilidade do usuário obter as credenciais de autenticação de nome de usuário e senha de maneira segura e apropriada para o seu ambiente. É a melhor prática solicitar essas credenciais de autenticação durante cada invocação do script, em vez de armazenar as credenciais em um formato não criptografado.

Autenticar usuários do Junos PyEZ usando uma senha

Para autenticar um usuário do Junos PyEZ usando uma senha:

  1. Em seu editor favorito, crie um novo arquivo que usa a extensão de arquivo .py .

    Este exemplo usa o nome de arquivo junos-pyez-pw.py.

  2. Inclua códigos que solicitam a conexão do nome de host e o nome de usuário e senha do dispositivo Junos e armazena cada valor em uma variável.
  3. Se o cliente Junos PyEZ se conectar ao dispositivo através de uma conexão SSH com um servidor de console, inclua código que solicita o nome de usuário e senha do servidor de console e armazena cada valor em uma variável.
  4. Na lista de argumentos do Device construtor:
    • Definir o host argumento para a variável que contém o nome de host

    • Definir os user argumentos e passwd as variáveis que contêm as credenciais de login do Junos OS

    • Se o cliente Junos PyEZ se conectar através de um servidor de console usando SSH, defina os argumentos e cs_passwd os cs_user argumentos para as variáveis que contêm as credenciais de login do servidor do console.

    • Inclua quaisquer argumentos adicionais necessários para o método de conexão

    O exemplo a seguir fornece código amostral para cada um dos diferentes métodos de conexão:

    Nota:

    Todas as plataformas que executam o Junos OS têm apenas o usuário raiz configurado por padrão, sem qualquer senha. Ao usar o Junos PyEZ para configurar inicialmente um dispositivo novo ou zeroizado por meio de uma conexão de console, uso user='root'e omitir o passwd parâmetro.

  5. Execute o código Junos PyEZ, que solicita o nome de host, o nome de usuário e senha do Junos OS e o nome de usuário e senha do servidor de console (quando solicitado) e não ecoa a senha na linha de comando.

Autenticar usuários do Junos PyEZ usando chaves SSH

Para usar chaves SSH em um aplicativo Junos PyEZ, você deve primeiro gerar as chaves no servidor de gerenciamento de configuração e configurar a chave pública em cada dispositivo ao qual o cliente Junos PyEZ se conectará. Para se conectar diretamente ao dispositivo Junos, configure a chave nesse dispositivo. Para se conectar a um dispositivo Junos por meio de um servidor de console, configure a chave no servidor do console. Para usar as chaves, você deve incluir os argumentos apropriados na Device lista de argumentos.

O Junos PyEZ pode usar chaves SSH que são ativamente carregados em um agente-chave SSH, chaves geradas no local padrão ou em um local definido pelo usuário, e chaves que usam ou buscam a proteção de senha. Ao se conectar diretamente a um dispositivo Junos, se os Device argumentos não especificarem uma senha ou arquivo chave SSH, o Junos PyEZ primeiro verifica as chaves SSH que são ativamente carregados no agente-chave SSH e, em seguida, verifica as chaves SSH no local padrão. Ao se conectar a um servidor de console, apenas chaves protegidas por senha são suportadas.

As seções a seguir descrevem as etapas para gerar as chaves SSH, configurar as chaves nos dispositivos Junos e usar as chaves para se conectar ao dispositivo gerenciado:

Gerar e configurar chaves SSH

Para gerar chaves SSH no servidor de gerenciamento de configuração e configurar a chave pública nos dispositivos Junos:

  1. No servidor, gere o par-chave SSH público e privado para o usuário desejado e forneça todas as opções necessárias ou desejadas, por exemplo:
  2. (Opcional) Carregue a chave no agente-chave SSH nativo.
  3. Configure a chave pública em cada dispositivo ao qual o aplicativo Junos PyEZ se conectará, o que pode incluir dispositivos Junos ou um servidor de console conectado ao dispositivo Junos.

    Um método para configurar a chave pública sob a conta de usuário apropriada em um dispositivo Junos é carregar a chave pública de um arquivo.

  4. Verifique se a chave funciona fazendo login no dispositivo usando a chave.

Chaves SSH de referência em aplicativos Junos PyEZ

Depois de gerar o par de chaves SSH e configurar a chave pública no dispositivo remoto, você pode usar a chave para se conectar ao dispositivo, incluindo os argumentos apropriados no Device código de construção. Os Device argumentos são determinados pela localização da chave, se a chave está protegida por senha, se a chave é ativamente carregada em um agente-chave SSH, como o agente ssh, e se o arquivo de configuração SSH do usuário já define configurações para esse host. As seções a seguir descrevem os vários cenários:

Autenticar o usuário usando um agente-chave SSH com chaves ativamente carregadas

Você pode usar um agente-chave SSH para armazenar chaves privadas com segurança e evitar retipagem repetidamente da senha para chaves protegidas por senha. O Junos PyEZ permite que um cliente se conecte diretamente a um dispositivo Junos usando chaves SSH que são ativamente carregados em um agente-chave SSH. Ao se conectar a um dispositivo Junos, se os Device argumentos não especificarem uma senha ou arquivo chave SSH, o Junos PyEZ primeiro verifica as chaves SSH que são ativamente carregados no agente-chave SSH e, em seguida, verifica as chaves SSH no local padrão.

Para usar chaves SSH que são ativamente carregados no agente-chave SSH nativo para se conectar diretamente a um dispositivo Junos:

  • Na lista de Device argumentos, você só precisa fornecer o nome de host necessário e as variáveis desejadas.

Autenticar o usuário usando chaves SSH sem proteção por senha

O Junos PyEZ permite que um cliente se conecte diretamente a um dispositivo Junos usando chaves privadas SSH que não tenham proteção de senha, embora não recomendamos o uso de chaves privadas SSH com uma senha vazia. O Junos PyEZ não aceita a conexão a um servidor de console usando chaves privadas SSH com uma senha vazia.

Para se conectar a um dispositivo Junos usando chaves SSH que estão no local padrão e não têm proteção de senha:

  • Na lista de Device argumentos, você só precisa fornecer o nome de host necessário e as variáveis desejadas.

O Junos PyEZ verifica primeiro as chaves SSH que são carregados em qualquer agente-chave SSH ativo e, em seguida, verifica as chaves SSH no local padrão.

Para se conectar a um dispositivo Junos usando chaves SSH que não estão no local padrão e não têm proteção de senha:

  • Na lista de Device argumentos, definir o ssh_private_key_file argumento para o caminho da chave privada SSH.

    Nota:

    Se o arquivo de configuração SSH do usuário já especificar o caminho de arquivo de chave privada SSH local para um determinado host, você pode omitir o ssh_private_key_file argumento na Device lista de argumentos. Incluir o ssh_private_key_file argumento substitui qualquer valor existente IdentityFile definido para um host no arquivo de configuração SSH do usuário.

Autenticar o usuário usando arquivos-chave SSH protegidos por senha

Os clientes do Junos PyEZ podem usar arquivos-chave SSH protegidos por senha para se conectar diretamente a um dispositivo Junos ou se conectar a um servidor de console conectado ao dispositivo.

Para se conectar diretamente a um dispositivo Junos usando um arquivo chave SSH protegido por senha:

  1. Inclua código que solicita a senha da chave privada SSH e armazena o valor em uma variável.
  2. Na lista de Device argumentos, defina o passwd argumento para fazer referência à variável que contém a senha do arquivo chave SSH.

    Se a chave não estiver no local padrão e o caminho do arquivo ainda não estiver definido no arquivo de configuração SSH do usuário, defina o ssh_private_key_file argumento para o caminho da chave privada.

Para se conectar a um dispositivo Junos através de um servidor de console usando um arquivo chave SSH protegido por senha:

  1. Inclua código que solicita as credenciais de login para o dispositivo Junos e armazena cada valor em uma variável.

  2. Inclua códigos que solicitam o nome de usuário do servidor do console e a senha de chave privada SSH e armazena cada valor em uma variável.

  3. Na lista de argumentos do Device construtor:

    • Defina o host argumento para o nome de host do servidor de console ou endereço IP

    • Definir os user argumentos e passwd as variáveis que contêm as credenciais de login do Junos OS

    • Defina o cs_user argumento para a variável que contém o nome de usuário do servidor de console

    • Defina o cs_passwd argumento para a variável que contém a senha do arquivo chave SSH

    • Defina o ssh_private_key_file argumento para o caminho da chave privada, se a chave não estiver no local padrão e o caminho do arquivo ainda não estiver definido no arquivo de configuração SSH do usuário