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

RESUMO Os aplicativos Junos PyEZ podem autenticar usuários usando mecanismos padrão de autenticação de SSH, incluindo senhas e chaves SSH.

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

O Junos PyEZ permite que você se conecte e gerencie diretamente os dispositivos Junos usando uma conexão de console serial, telnet ou uma sessão NETCONF sobre SSH. Além disso, o Junos PyEZ também oferece suporte à conexão ao dispositivo por meio de uma conexão telnet ou SSH a 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 de autenticação SSH padrão, dependendo do método de conexão. Quando você gerencia os dispositivos Junos por meio de uma conexão SSH, a maneira mais conveniente e segura de acessar um dispositivo é configurar as 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 não especificar um usuário na lista de parâmetros $USER, o usuário não poderá .

Para conexões SSH, o Junos PyEZ consulta automaticamente o arquivo de configuração SSH padrão em ~/.ssh/config, se um existir, 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 anulada pelos argumentos da Device lista de argumentos, como o usuário ou o arquivo de identidade.

Quando o cliente Junos PyEZ usa o 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 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, então 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 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 use a extensão de arquivo .py .

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

  2. Inclua código que solicita o nome de host para o qual se conectar e o nome de usuário e senha para o 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 a um servidor de console, inclua código que solicita o nome de usuário e senha do servidor do 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, configure 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 de amostra 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 zerado por meio de uma conexão de console, use user='root'e omite 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 do 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 carregadas em um agente-chave SSH, chaves que são geradas no local padrão ou em um local definido pelo usuário, e chaves que usam ou deixam de usar 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 verifica primeiro as chaves SSH que estão ativamente carregadas no agente chave SSH e depois verifica se há chaves SSH no local padrão. Ao se conectar a um servidor de console, apenas as 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 em 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

Após 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 código do Device construtor. Os Device argumentos são determinados pela localização da chave, se a chave está protegida por senha, se a chave é carregada ativamente em um agente-chave SSH, como ssh-agent, 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 carregadas ativamente

Você pode usar um agente-chave SSH para armazenar chaves privadas com segurança e evitar reinstalar repetidamente a 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 carregadas 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 verifica primeiro as chaves SSH que estão ativamente carregadas no agente chave SSH e depois verifica se há chaves SSH no local padrão.

Para usar as chaves SSH que são ativamente carregadas 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 quaisquer variáveis desejadas.

Autenticar o usuário usando chaves SSH sem proteção de 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 recomendemos usar chaves privadas SSH com uma senha vazia. O Junos PyEZ não suporta 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 quaisquer variáveis desejadas.

O Junos PyEZ verifica primeiro as chaves SSH que estão carregadas em qualquer agente-chave SSH ativo e depois 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 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, configure o ssh_private_key_file argumento para o caminho da chave privada.

Para se conectar a um dispositivo Junos por meio 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ódigo que solicita o nome de usuário do servidor do console e a senha da chave privada SSH e armazena cada valor em uma variável.

  3. Na lista de argumentos do Device construtor:

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

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

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

    • Definir o cs_passwd argumento para a variável que contém a senha de 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