Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Linux-ondersteuning is beschikbaar in Visual Studio 2017 en hoger. FiPS-compatibele veilige externe Linux-ontwikkeling is beschikbaar in Visual Studio 2019 versie 16.5 en hoger.
Federal Information Processing Standard (FIPS) Publication 140-2 is een Amerikaanse overheidsstandaard voor cryptografische modules. Implementaties van de standaard worden gevalideerd door NIST. Windows heeft gevalideerde ondersteuning voor cryptografische modules die compatibel zijn met FIPS. In Visual Studio 2019 versie 16.5 en hoger kunt u een veilige, cryptografische verbinding met FIPS gebruiken voor externe ontwikkeling met uw Linux-systeem.
U kunt als volgt een beveiligde, FIPS-compatibele verbinding instellen tussen Visual Studio en uw externe Linux-systeem. Deze handleiding is van toepassing wanneer u CMake- of MSBuild Linux-projecten bouwt in Visual Studio. Dit artikel is de FIPS-compatibele versie van de verbindingsinstructies in Verbinding maken met uw externe Linux-computer.
Een FIPS-compatibele verbinding voorbereiden
Enige voorbereiding is vereist voor het gebruik van een FIPS-compatibele, cryptografische beveiligde SSH-verbinding tussen Visual Studio en uw externe Linux-systeem. Voor FIPS-140-2-naleving ondersteunt Visual Studio alleen RSA-sleutels.
In de voorbeelden in dit artikel wordt Ubuntu 18.04 LTS gebruikt met OpenSSH-serverversie 7.6. De instructies moeten echter hetzelfde zijn voor elke distributie met behulp van een redelijk recente versie van OpenSSH.
De SSH-server instellen op het externe systeem
Installeer en start de OpenSSH-server op het Linux-systeem:
sudo apt install openssh-server sudo service ssh startAls u wilt dat de
ssh-server automatisch wordt gestart wanneer het systeem wordt opgestart, schakelt u deze in met behulp vansystemctl:sudo systemctl enable sshOpen
/etc/ssh/sshd_configals root. Bewerk (of voeg, als ze niet bestaan) de volgende regels toe: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-sha1Notitie
ssh-rsa,rsa-sha2-*enecdsa-sha2-*zijn de enige FIPS-conforme hostsleutels algoritmen die Visual Studio ondersteunt. Zie Ondersteunde SSH-algoritmenvoor meer informatie over de algoritmen die Visual Studio ondersteunt.U bent niet beperkt tot deze opties. U kunt
sshconfigureren voor het gebruik van andere coderingssleutels, hostsleutelalgoritmen enzovoort. Enkele andere relevante beveiligingsopties die u kunt overwegen, zijnPermitRootLogin,PasswordAuthenticationenPermitEmptyPasswords. Zie de paginamanvoorsshd_configof het artikel SSH-serverconfiguratievoor meer informatie.Nadat u
sshd_confighebt opgeslagen en gesloten, start u de ssh-server opnieuw om de nieuwe configuratie toe te passen:sudo service ssh restart
Vervolgens maakt u een ECDSA-sleutelpaar op uw Windows-computer. Vervolgens kopieert u de openbare sleutel naar het externe Linux-systeem voor gebruik door ssh.
Een ECDSA-sleutelbestand maken en gebruiken
Genereer op de Windows-computer een openbaar/persoonlijk ECDSA-sleutelpaar met behulp van deze opdracht:
ssh-keygen -t ecdsa -m PEMMet de opdracht maakt u een openbare sleutel en een persoonlijke sleutel. Standaard worden de sleutels opgeslagen in %USERPROFILE%.ssh\id_ecdsa en %USERPROFILE%.ssh\id_ecdsa.pub. (Gebruik in PowerShell $env:USERPROFILE in plaats van de cmd-macro %USERPROFILE%) Sleutels die worden gegenereerd met RSA, worden ook ondersteund. Als u de sleutelnaam wijzigt, gebruikt u de gewijzigde naam in de volgende stappen. U wordt aangeraden een wachtwoordzin te gebruiken voor een betere beveiliging.
Kopieer vanuit Windows de openbare sleutel naar de Linux-computer:
scp %USERPROFILE%\.ssh\id_ecdsa.pub user@hostname:Voeg op het Linux-systeem de sleutel toe aan de lijst met geautoriseerde sleutels en zorg ervoor dat het bestand over de juiste machtigingen beschikt:
cat ~/id_ecdsa.pub >> ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keysNu kunt u testen of de nieuwe sleutel in
sshwerkt. Gebruik deze om u aan te melden vanuit Windows:ssh -i %USERPROFILE%\.ssh\id_ecdsa user@hostname
U hebt sshingesteld, versleutelingssleutels gemaakt en geïmplementeerd en uw verbinding getest. U kunt nu de Visual Studio-verbinding instellen.
Verbinding maken met het externe systeem in Visual Studio
Kies in Visual Studio Extra > Opties op de menubalk om het dialoogvenster Opties te openen. Selecteer vervolgens Cross Platform > Connection Manager om het dialoogvenster Verbindingsbeheer te openen.
Als u nog geen verbinding hebt ingesteld in Visual Studio, wordt het dialoogvenster Verbindingsbeheer voor u geopend wanneer u uw project voor de eerste keer bouwt.
Kies in het dialoogvenster Verbindingsbeheer de knop Toevoegen om een nieuwe verbinding toe te voegen.
Het venster Verbinding maken met extern systeem wordt weergegeven.
Voer in het dialoogvenster Verbinding maken met extern systeem de verbindingsgegevens van uw externe computer in.
Ingang Beschrijving hostnaam Naam of IP-adres van uw doelapparaat poort Poort waarop de SSH-service wordt uitgevoerd, meestal 22 gebruikersnaam Gebruiker verifiëren als verificatietype Kies persoonlijke sleutel voor een FIPS-compatibele verbinding persoonlijke sleutelbestand Persoonlijke-sleutelbestand gemaakt voor ssh-verbinding wachtwoordzin Wachtwoordzin die wordt gebruikt met een persoonlijke sleutel die hierboven is geselecteerd Wijzig het verificatietype in persoonlijke sleutel. Voer het pad naar uw persoonlijke sleutel in het veld Persoonlijke-sleutelbestand in. U kunt de knop Bladeren gebruiken om in plaats daarvan naar uw persoonlijke-sleutelbestand te navigeren. Voer vervolgens de wachtwoordzin in die wordt gebruikt voor het versleutelen van uw persoonlijke-sleutelbestand in het veld wachtwoordzin.
Kies de knop Verbinding maken om verbinding te maken met de externe computer.
Als de verbinding slaagt, configureert Visual Studio IntelliSense voor het gebruik van de externe headers. Zie voor meer informatie IntelliSense voor headers op externe systemen.
Als de verbinding mislukt, worden de invoervakken die moeten worden gewijzigd rood weergegeven.
Zie Verbinding maken met uw externe Linux-computervoor meer informatie over het oplossen van problemen met uw verbinding.
Opdrachtregelprogramma voor Verbindingsbeheer
Visual Studio 2019 versie 16.5 of hoger: ConnectionManager.exe is een opdrachtregelprogramma voor het beheren van externe ontwikkelverbindingen buiten Visual Studio. Dit is handig voor taken zoals het inrichten van een nieuwe ontwikkelcomputer. U kunt het ook gebruiken om Visual Studio in te stellen voor continue integratie. Zie ConnectionManager-verwijzingvoor voorbeelden en een volledige verwijzing naar de opdracht ConnectionManager.
Optioneel: FIPS-modus in- of uitschakelen
Het is mogelijk om de FIPS-modus wereldwijd in te schakelen in Windows.
Als u de FIPS-modus wilt inschakelen, drukt u op Windows+R- om het dialoogvenster uitvoeren te openen en voert u
gpedit.mscuit.Vouw lokaal computerbeleid > Computerconfiguratie > Windows-instellingen > Beveiligingsinstellingen > en selecteer Beveiligingsopties.
Selecteer onder BeleidSysteemcryptografie: FIPS-compatibele algoritmen gebruiken voor versleuteling, hashing en ondertekeningen druk vervolgens op Enter- om het dialoogvenster te openen.
Selecteer op het tabblad Lokale beveiligingsinstellingIngeschakeld of Uitgeschakelden kies vervolgens OK- om uw wijzigingen op te slaan.
Waarschuwing
Het inschakelen van de FIPS-modus kan ertoe leiden dat sommige toepassingen onverwacht worden onderbroken of zich gedragen. Zie het blogbericht Waarom we niet meer "FIPS-modus" aanbevelenvoor meer informatie.
Aanvullende informatiebronnen
Microsoft-documentatie over FIPS 140-validatie
FIPS 140-2: Beveiligingsvereisten voor cryptografische modules (van NIST)
Validatieprogramma voor cryptografische algoritmen: Validatienotities (van NIST)
Microsoft-blogbericht op Waarom we de FIPS-modus niet meer aanbevelen
Zie ook
een Linux-project configureren
Een Linux CMake-project configureren
Verbinding maken met uw externe Linux-computer
uw Linux-project implementeren, uitvoeren en fouten opsporen
CMake-foutopsporingssessies configureren