Pular para o conteúdo principal
Version: 4.42

Como configurar a autenticação SSH baseada em chaves com Redtrust

Visão geral​

Este guia explica como autenticar em um servidor SSH usando uma chave armazenada no Redtrust em vez de uma chave local.

Contexto​

Em uma configuração SSH padrão, o cliente usa um arquivo de chave privada local (por exemplo, id_rsa ou id_ed25519) para se autenticar em um servidor. O servidor verifica a chave pública correspondente armazenada no arquivo authorized_keys.

Quando você usa Redtrust, a chave privada não é armazenada localmente. Em vez disso, o OpenSSH carrega o provedor PKCS#11 do Redtrust (RTPKCS11.dll) para acessar com segurança a chave privada no Redtrust. Do ponto de vista do servidor, a autenticação funciona como uma autenticação padrão por chave pública. A única diferença é como o cliente acessa a chave privada.

Antes de começar​

Para seguir este guia, você precisa do seguinte:

  • Um certificado enviado para o Redtrust.
  • Uma política que permita o uso do cliente SSH (ssh.exe).
  • Um servidor SSH que permita autenticação por chave pública.
  • Para Windows Server, você deve ter o OpenSSH instalado e o serviço iniciado.
aviso

Se a instalação do OpenSSH falhar, verifique se a máquina tem o patch mais recente do sistema operacional. Para isso, execute sconfig, selecione Download and install updates e instale qualquer atualização pendente.

Obter a chave pública SSH​

  1. Acesse o console de administração.
  2. Vá para Certificados e localize o que você deseja usar.
  3. Vá ao menu Ações > Baixar certificado > Baixar .pub (SSH).

O conteúdo do arquivo .pub é a chave pública SSH usada nas etapas abaixo.

Configurar o servidor SSH​

Por padrão, a instalação do OpenSSH Server já permite login usando autenticação por chave pública. Você deve adicionar a chave pública e associá-la à conta de usuário.

No Windows, o OpenSSH trata contas de administrador de forma diferente e armazena as chaves autorizadas em um arquivo de todo o sistema dentro de ProgramData.

Para usuários administradores​

  1. Crie o arquivo administrators_authorized_keys.

    New-Item -Force -ItemType File -Path C:\ProgramData\ssh\administrators_authorized_keys
  2. Adicione a chave pública que você baixou do Redtrust à lista de chaves aceitas.

    Add-Content -Force -Path $env:ProgramData\ssh\administrators_authorized_keys -Value "SUA_CHAVE_SSH"
  3. Configure as permissões do arquivo.

    Get-Acl C:\ProgramData\ssh\ssh_host_rsa_key | Set-Acl C:\ProgramData\ssh\administrators_authorized_keys
  4. Reinicie o serviço.

    Restart-Service sshd

Para usuários não administradores​

  1. Crie o arquivo authorized_keys.

    New-Item -Force -ItemType File -Path C:\Users\SEU_USUÁRIO\.ssh\authorized_keys
  2. Adicione a chave pública à lista de chaves aceitas.

    Add-Content -Force -Path C:\Users\SEU_USUÁRIO\.ssh\authorized_keys -Value "SUA_CHAVE_SSH"
  3. Configure as permissões do arquivo.

    Get-Acl C:\Users\SEU_USUÁRIO | Set-Acl C:\Users\SEU_USUÁRIO\.ssh
    Get-Acl C:\Users\SEU_USUÁRIO | Set-Acl C:\Users\SEU_USUÁRIO\.ssh\authorized_keys
  4. Reinicie o serviço.

    Restart-Service sshd

Depois que o servidor SSH confiar na chave pública, configure o cliente SSH para usar a chave privada armazenada no Redtrust.

Configurar o cliente SSH​

Depois que o servidor SSH aceitar autenticação por chave pública, configure o cliente SSH do Windows para usar a chave armazenada no Redtrust.

  1. Conecte o agente do Redtrust.

  2. Crie um arquivo de configuração SSH chamado config.

    C:\Users\SEU_USUÁRIO\.ssh\config

    Se o diretório .ssh não existir, crie-o manualmente.

  3. Adicione a seguinte linha:

    PKCS11Provider "C:\Windows\System32\RTPKCS11.dll"

    Isso indica ao OpenSSH que use o provedor PKCS#11 do Redtrust para acessar as chaves privadas armazenadas com segurança no Redtrust.

  4. Conecte-se ao servidor:

    ssh SEU_USUÁRIO@IP_DO_SERVIDOR

Se o servidor confiar na chave pública correspondente, a autenticação será realizada com sucesso sem usar um arquivo de chave privada local nem a senha do servidor.

aviso

Se o cliente solicitar um PIN PKCS#11 do Redtrust, verifique se o agente está em execução.

tip

No Windows, o Git pode usar sua própria implementação de SSH em vez do cliente OpenSSH incluído no sistema operacional. Configure o Git para usar o cliente OpenSSH do Windows:

git config --global core.sshCommand "C:/Windows/System32/OpenSSH/ssh.exe"

Depois dessa configuração, o Git usa o mesmo cliente SSH que carrega o provedor PKCS#11 do Redtrust.

No Linux, o Git usa o cliente SSH do sistema por padrão, portanto não é necessária configuração adicional.

Esta página foi útil?