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 Certificates e localize o que você deseja usar.
  3. Vá ao menu Actions > Download certificate > Download .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.