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
Installera och starta OpenSSH-servern i Linux-systemet:
sudo apt install openssh-server sudo service ssh start
Om du vill att
ssh
-servern ska starta automatiskt när systemet startas aktiverar du den med hjälp avsystemctl
:sudo systemctl enable ssh
Ö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-*
ochecdsa-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 ärPermitRootLogin
,PasswordAuthentication
ochPermitEmptyPasswords
. Mer information finns på sidanman
försshd_config
eller artikeln SSH Server Configuration.När du har sparat och stängt
sshd_config
startar 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
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.
Från Windows kopierar du den offentliga nyckeln till Linux-datorn:
scp %USERPROFILE%\.ssh\id_ecdsa.pub user@hostname:
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
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
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.
I dialogrutan Anslutningshanteraren väljer du knappen Lägg till för att lägga till en ny anslutning.
Fönstret Anslut till fjärrsystem visas.
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.
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.
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.
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
.Expandera lokal datorprincip > Datorkonfiguration > Windows-inställningar > Säkerhetsinställningar > lokala principer och välj säkerhetsalternativ.
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.
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
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