Dela via


Konfigurera FIPS-kompatibel säker linux-fjärrutveckling

Linux-stöd är tillgängligt i Visual Studio 2017 och senare. FIPS-kompatibel säker fjärrutveckling för Linux är tillgänglig i Visual Studio 2019 version 16.5 och senare.

Federal Information Processing Standard (FIPS) Publication 140-2 är en amerikansk myndighetsstandard för kryptografiska moduler. Implementeringar av standarden verifieras av NIST. Windows har validerat stöd för FIPS-kompatibla kryptografiska moduler. I Visual Studio 2019 version 16.5 och senare kan du använda en säker, FIPS-kompatibel kryptografisk anslutning till Linux-systemet för fjärrutveckling.

Så här konfigurerar du en säker, FIPS-kompatibel anslutning mellan Visual Studio och ditt fjärranslutna Linux-system. Den här guiden gäller när du skapar CMake- eller MSBuild Linux-projekt i Visual Studio. Den här artikeln är den FIPS-kompatibla versionen av anslutningsinstruktionerna i Anslut till din fjärranslutna Linux-dator.

Förbereda en FIPS-kompatibel anslutning

Vissa förberedelser krävs för att använda en FIPS-kompatibel, kryptografiskt säker ssh-anslutning mellan Visual Studio och ditt fjärranslutna Linux-system. För FIPS-140-2-efterlevnad stöder Visual Studio endast RSA-nycklar.

Exemplen i den här artikeln använder Ubuntu 18.04 LTS med OpenSSH-serverversion 7.6. Instruktionerna bör dock vara desamma för alla distributioner med hjälp av en måttligt ny version av OpenSSH.

Så här konfigurerar du SSH-servern på fjärrsystemet

  1. Installera och starta OpenSSH-servern i Linux-systemet:

    sudo apt install openssh-server
    sudo service ssh start
    
  2. Om du vill att ssh-servern ska starta automatiskt när systemet startas aktiverar du den med hjälp av systemctl:

    sudo systemctl enable ssh
    
  3. Öppna /etc/ssh/sshd_config som rot. Redigera (eller lägg till, om de inte finns) följande rader:

    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
    

    Not

    ssh-rsa, rsa-sha2-*och ecdsa-sha2-* är de enda FIPS-kompatibla värdnyckelalgoritmerna som VS stöder. Mer information om de algoritmer som Visual Studio stöder finns i SSH-algoritmer som stöds.

    Du är inte begränsad till de här alternativen. Du kan konfigurera ssh att använda andra chiffer, värdnyckelalgoritmer och så vidare. Några andra relevanta säkerhetsalternativ som du kanske vill överväga är PermitRootLogin, PasswordAuthenticationoch PermitEmptyPasswords. Mer information finns på sidan man för sshd_config eller artikeln SSH Server Configuration.

  4. När du har sparat och stängt sshd_configstartar du om ssh-servern för att tillämpa den nya konfigurationen:

    sudo service ssh restart
    

Sedan skapar du ett ECDSA-nyckelpar på din Windows-dator. Sedan kopierar du den offentliga nyckeln till det fjärranslutna Linux-systemet för användning av ssh.

Skapa och använda en ECDSA-nyckelfil

  1. På Windows-datorn genererar du ett offentligt/privat ECDSA-nyckelpar med hjälp av det här kommandot:

    ssh-keygen -t ecdsa -m PEM
    

    Kommandot skapar en offentlig nyckel och en privat nyckel. Som standard sparas nycklarna till %USERPROFILE%.ssh\id_ecdsa och %USERPROFILE%.ssh\id_ecdsa.pub. (I PowerShell använder du $env:USERPROFILE i stället för cmd-makrot %USERPROFILE%) Nycklar som genereras med RSA stöds också. Om du ändrar nyckelnamnet använder du det ändrade namnet i de steg som följer. Vi rekommenderar att du använder en lösenfras för ökad säkerhet.

  2. Från Windows kopierar du den offentliga nyckeln till Linux-datorn:

    scp %USERPROFILE%\.ssh\id_ecdsa.pub user@hostname:
    
  3. I Linux-systemet lägger du till nyckeln i listan över auktoriserade nycklar och kontrollerar att filen har rätt behörigheter:

    cat ~/id_ecdsa.pub >> ~/.ssh/authorized_keys
    chmod 600 ~/.ssh/authorized_keys
    
  4. Nu kan du testa om den nya nyckeln fungerar i ssh. Använd den för att logga in från Windows:

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

Du har konfigurerat ssh, skapat och distribuerat krypteringsnycklar och testat anslutningen. Nu är du redo att konfigurera Visual Studio-anslutningen.

Ansluta till fjärrsystemet i Visual Studio

  1. I Visual Studio väljer du Verktyg > Alternativ på menyraden för att öppna dialogrutan Alternativ. Välj sedan Plattformsoberoende > Anslutningshanterare för att öppna dialogrutan för Anslutningshanteraren.

    Om du inte har konfigurerat en anslutning i Visual Studio tidigare öppnar Visual Studio dialogrutan Anslutningshanteraren för dig när du skapar projektet för första gången.

  2. I dialogrutan Anslutningshanteraren väljer du knappen Lägg till för att lägga till en ny anslutning.

    Skärmbild som visar alternativfönstret i dialogrutan Anslutningshanteraren. Plattformsoberoende > C plus plus > Anslutningshanteraren är markerad.

    Fönstret Anslut till fjärrsystem visas.

    Skärmbild som visar fönstret Anslut till fjärrsystem, som har textrutor för värdnamn, port, användarnamn, autentiseringstyp och lösenord.

  3. I dialogrutan Anslut till fjärrsystem anger du anslutningsinformationen för fjärrdatorn.

    Inträde Beskrivning
    värdnamn Namn eller IP-adress för målenheten
    Port Port som SSH-tjänsten körs på, vanligtvis 22
    Användarnamn Användare som ska autentiseras som
    autentiseringstyp Välj privat nyckel för en FIPS-kompatibel anslutning
    fil med privat nyckel Privat nyckelfil som skapats för ssh-anslutning
    Lösenfras Lösenfras som används med privat nyckel som valts ovan

    Ändra autentiseringstypen till privat nyckel. Ange sökvägen till din privata nyckel i fältet Privat nyckelfil. Du kan använda knappen Bläddra för att navigera till din privata nyckelfil i stället. Ange sedan lösenfrasen som används för att kryptera din privata nyckelfil i fältet Lösenfras.

  4. Välj knappen Anslut för att försöka ansluta till fjärrdatorn.

    Om anslutningen lyckas konfigurerar Visual Studio IntelliSense att använda fjärrrubrikerna. Mer information finns i IntelliSense för rubriker på fjärrsystem.

    Om anslutningen misslyckas markeras de inmatningsfält som behöver ändras med en röd kantlinje.

    Skärmbild av fönstret Anslut till fjärrsystem med värdnamn och porttextrutor som beskrivs i rött för att indikera att de måste ändras.

    Mer information om hur du felsöker anslutningen finns i Anslut till din fjärranslutna Linux-dator.

Kommandoradsverktyg för Anslutningshanteraren

Visual Studio 2019 version 16.5 eller senare: ConnectionManager.exe är ett kommandoradsverktyg för att hantera fjärrutvecklingsanslutningar utanför Visual Studio. Det är användbart för uppgifter som att etablera en ny utvecklingsdator. Du kan också använda den för att konfigurera Visual Studio för kontinuerlig integrering. Exempel och en fullständig referens till kommandot ConnectionManager finns i ConnectionManager-referens.

Valfritt: Aktivera eller inaktivera FIPS-läge

Det är möjligt att aktivera FIPS-läge globalt i Windows.

  1. Om du vill aktivera FIPS-läge trycker du på Windows+R- för att öppna dialogrutan Kör och kör sedan gpedit.msc.

  2. Expandera lokal datorprincip > Datorkonfiguration > Windows-inställningar > Säkerhetsinställningar > lokala principer och välj säkerhetsalternativ.

  3. Under Principväljer du Systemkryptografi: Använd FIPS-kompatibla algoritmer för kryptering, hashning och signeringoch tryck sedan på Retur för att öppna dialogrutan.

  4. På fliken lokal säkerhetsinställning väljer du Aktiverad eller Inaktiveradoch väljer sedan OK för att spara ändringarna.

Varning

Om DU aktiverar FIPS-läge kan vissa program brytas eller bete sig oväntat. Mer information finns i blogginlägget Varför vi inte längre rekommenderar "FIPS-läge".

Ytterligare resurser

Microsoft-dokumentation om FIPS 140-validering

FIPS 140-2: Säkerhetskrav för kryptografiska moduler (från NIST)

valideringsprogram för kryptografiska algoritmer: Valideringsanteckningar (från NIST)

Microsofts blogginlägg om Varför vi inte rekommenderar "FIPS-läge" längre

Konfiguration av SSH-server

Se även

Konfigurera ett Linux-projekt
Konfigurera ett Linux CMake-projekt
Anslut till din fjärranslutna Linux-dator
Distribuera, köra och felsöka ditt Linux-projekt
Konfigurera CMake-felsökningssessioner