Partilhar via


Configurar o desenvolvimento remoto seguro do Linux compatível com FIPS

O suporte ao Linux está disponível no Visual Studio 2017 e posterior. O desenvolvimento remoto seguro do Linux compatível com FIPS está disponível no Visual Studio 2019 versão 16.5 e posterior.

Federal Information Processing Standard (FIPS) Publication 140-2 é um padrão do governo dos EUA para módulos criptográficos. As implementações da norma são validadas pelo NIST. O Windows validou o suporte para módulos criptográficos compatíveis com FIPS. No Visual Studio 2019 versão 16.5 e posterior, você pode usar uma conexão criptográfica segura e compatível com FIPS ao seu sistema Linux para desenvolvimento remoto.

Veja como configurar uma conexão segura e compatível com FIPS entre o Visual Studio e seu sistema Linux remoto. Este guia é aplicável quando você cria projetos CMake ou MSBuild Linux no Visual Studio. Este artigo é a versão compatível com FIPS das instruções de conexão em Conectar ao seu computador Linux remoto.

Preparar uma conexão compatível com FIPS

Alguma preparação é necessária para usar uma conexão ssh criptograficamente segura compatível com FIPS entre o Visual Studio e seu sistema Linux remoto. Para conformidade com FIPS-140-2, o Visual Studio suporta apenas chaves RSA.

Os exemplos neste artigo usam o Ubuntu 18.04 LTS com o servidor OpenSSH versão 7.6. No entanto, as instruções devem ser as mesmas para qualquer distro usando uma versão moderadamente recente do OpenSSH.

Para configurar o servidor SSH no sistema remoto

  1. No sistema Linux, instale e inicie o servidor OpenSSH:

    sudo apt install openssh-server
    sudo service ssh start
    
  2. Se você quiser que o ssh servidor seja iniciado automaticamente quando o sistema for inicializado, ative-o usando systemctl:

    sudo systemctl enable ssh
    
  3. Abra /etc/ssh/sshd_config como root. Edite (ou adicione, se não existirem) as seguintes linhas:

    Ciphers aes256-cbc,aes192-cbc,aes128-cbc,3des-cbc
    HostKeyAlgorithms ssh-rsa
    KexAlgorithms diffie-hellman-group-exchange-sha256,diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1
    MACs hmac-sha2-256,hmac-sha1
    

    Observação

    ssh-rsa, rsa-sha2-*e ecdsa-sha2-* são os únicos algoritmos de chave de host compatíveis com FIPS suportados pelo VS. Para obter mais informações sobre os algoritmos suportados pelo Visual Studio, consulte Algoritmos SSH suportados.

    Você não está limitado a essas opções. Você pode configurar ssh para usar outras cifras, algoritmos de chave de host e assim por diante. Algumas outras opções de segurança relevantes que você pode querer considerar são PermitRootLogin, PasswordAuthenticatione PermitEmptyPasswords. Para obter mais informações, consulte a man página sshd_config ou o artigo Configuração do servidor SSH.

  4. Depois de salvar e fechar sshd_config, reinicie o servidor ssh para aplicar a nova configuração:

    sudo service ssh restart
    

Em seguida, você criará um par de chaves ECDSA em seu computador Windows. Em seguida, você copiará a chave pública para o sistema Linux remoto para uso pelo ssh.

Para criar e usar um arquivo de chave ECDSA

  1. Na máquina Windows, gere um par de chaves ECDSA público/privado usando este comando:

    ssh-keygen -t ecdsa -m PEM
    

    O comando cria uma chave pública e uma chave privada. Por padrão, as chaves são salvas em %USERPROFILE%.ssh\id_ecdsa e %USERPROFILE%.ssh\id_ecdsa.pub. (No PowerShell, utilize $env:USERPROFILE ao invés da macro cmd %USERPROFILE%) As chaves geradas com RSA também são suportadas. Se você alterar o nome da chave, use o nome alterado nas etapas a seguir. Recomendamos que você use uma frase secreta para aumentar a segurança.

  2. Do Windows, copie a chave pública para a máquina Linux:

    scp %USERPROFILE%\.ssh\id_ecdsa.pub user@hostname:
    
  3. No sistema Linux, adicione a chave à lista de chaves autorizadas e verifique se o arquivo tem as permissões corretas:

    cat ~/id_ecdsa.pub >> ~/.ssh/authorized_keys
    chmod 600 ~/.ssh/authorized_keys
    
  4. Agora, você pode testar para ver se a nova chave funciona no ssh. Utilize-o para iniciar sessão a partir do Windows:

    ssh -i %USERPROFILE%\.ssh\id_ecdsa user@hostname
    

Você configurou ssh, criou e implantou chaves de criptografia com sucesso e testou sua conexão. Agora você está pronto para configurar a conexão do Visual Studio.

Conectar-se ao sistema remoto no Visual Studio

  1. No Visual Studio, escolha Opções de Ferramentas > na barra de menus para abrir a caixa de diálogo Opções. Em seguida, selecione Gerenciador de conexões entre plataformas > para abrir a caixa de diálogo Gerenciador de conexões.

    Se você não configurou uma conexão no Visual Studio antes, quando você cria seu projeto pela primeira vez, o Visual Studio abre a caixa de diálogo Gerenciador de conexões para você.

  2. Na caixa de diálogo Gerenciador de Conexões, escolha o botão Adicionar para adicionar uma nova conexão.

    Captura de ecrã a mostrar o painel de opções na caixa de diálogo Gestor de ligações. Cross Platform > C plus > plus Connection Manager é destacado.

    A janela Conectar ao sistema remoto é exibida.

    Captura de ecrã a mostrar a janela Ligar ao Sistema Remoto, que tem caixas de texto para o nome do anfitrião, porta, nome de utilizador, tipo de autenticação e palavra-passe.

  3. Na caixa de diálogo Ligar ao Sistema Remoto , introduza os detalhes da ligação da sua máquina remota.

    Entrada Descrição
    Nome do host Nome ou endereço IP do dispositivo alvo
    Porto Porta em que o serviço SSH está sendo executado, normalmente 22
    Nome de utilizador Usuário para autenticar como
    Tipo de autenticação Escolha a chave privada para uma conexão compatível com FIPS
    Arquivo de chave privada Arquivo de chave privada criado para conexão ssh
    Frase de segurança Senha usada com chave privada selecionada acima

    Altere o tipo de autenticação para Chave Privada. Introduza o caminho para a sua chave privada no campo Ficheiro de chave privada . Em vez disso, você pode usar o botão Procurar para navegar até o arquivo de chave privada. Em seguida, insira a senha usada para criptografar seu arquivo de chave privada no campo Senha .

  4. Escolha o botão Conectar para tentar uma conexão com o computador remoto.

    Se a conexão for bem-sucedida, o Visual Studio configurará o IntelliSense para usar os cabeçalhos remotos. Para obter mais informações, consulte IntelliSense para cabeçalhos em sistemas remotos.

    Se a conexão falhar, as caixas de entrada que precisam ser alteradas serão delineadas em vermelho.

    Captura de ecrã da janela Ligar ao Sistema Remoto que tem o nome do anfitrião e as caixas de texto da porta delineadas a vermelho para indicar que precisam de ser alteradas.

    Para obter mais informações sobre como solucionar problemas de conexão, consulte Conectar-se ao computador Linux remoto.

Utilitário de linha de comando para o Connection Manager

Visual Studio 2019 versão 16.5 ou posterior: ConnectionManager.exe é um utilitário de linha de comando para gerenciar conexões de desenvolvimento remoto fora do Visual Studio. É útil para tarefas como provisionar uma nova máquina de desenvolvimento. Ou, você pode usá-lo para configurar o Visual Studio para integração contínua. Para obter exemplos e uma referência completa ao comando ConnectionManager, consulte Referência do ConnectionManager.

Opcional: ativar ou desativar o modo FIPS

É possível ativar o modo FIPS globalmente no Windows.

  1. Para ativar o modo FIPS, prima Windows+R para abrir a caixa de diálogo Executar e, em seguida, execute gpedit.msc.

  2. Expanda Diretiva do Computador Local, > Configuração do Computador, Configurações >> do Windows, Configurações de Segurança, Diretivas > Locais e selecione Opções de Segurança.

  3. Em Política, selecione Criptografia do sistema: usar algoritmos compatíveis com FIPS para criptografia, hash e assinatura e pressione Enter para abrir sua caixa de diálogo.

  4. No separador Configuração de Segurança Local , selecione Ativado ou Desativado e, em seguida, selecione OK para guardar as alterações.

Advertência

Ativar o modo FIPS pode fazer com que alguns aplicativos quebrem ou se comportem inesperadamente. Para obter mais informações, consulte a postagem do blog Por que não estamos mais recomendando o "modo FIPS".

Recursos adicionais

Documentação da Microsoft sobre validação FIPS 140

FIPS 140-2: Requisitos de segurança para módulos criptográficos (do NIST)

Programa de Validação de Algoritmos Criptográficos: Notas de Validação (do NIST)

Postagem no blog da Microsoft sobre por que não estamos mais recomendando o "modo FIPS"

Configuração do Servidor SSH

Ver também

Configurar um projeto Linux
Configurar um projeto CMake Linux
Conecte-se ao seu computador Linux remoto
Implante, execute e depure seu projeto Linux
Configurar sessões de depuração do CMake