Configurer le développement Linux à distance sécurisé compatible FIPS
La prise en charge Linux est disponible dans Visual Studio 2017 et ultérieur. Le développement Linux à distance sécurisé compatible FIPS est disponible dans Visual Studio 2019 versions 16.5 et ultérieures.
La Publication FIPS (Federal Information Processing Standard) 140-2 est une norme du gouvernement des États-Unis applicable aux modules de chiffrement. Les implémentations de la norme sont validées par le National Institute of Standards and Technology (NIST). Windows a validé la prise en charge des modules de chiffrement conformes à la norme FIPS. Dans Visual Studio 2019 versions 16.5 et ultérieures, vous pouvez utiliser une connexion de chiffrement sécurisée compatible FIPS à votre système Linux pour le développement à distance.
Voici comment configurer une connexion sécurisée compatible FIPS entre Visual Studio et votre système Linux distant. Ce guide s’applique lorsque vous générez des projets CMake ou MSBuild Linux dans Visual Studio. Cet article est la version compatible FIPS des instructions de connexion données dans l’article Se connecter à un ordinateur Linux distant.
Préparer une connexion compatible FIPS
Une certaine préparation est requise pour utiliser une connexion SSH sécurisée par chiffrement compatible FIPS entre Visual Studio et votre système Linux distant. Pour se conformer à la norme FIPS-140-2, Visual Studio prend uniquement en charge les clés RSA.
Les exemples fournis dans cet article utilisent Ubuntu 18.04 LTS avec un serveur OpenSSH version 7.6. Toutefois, les instructions devraient être identiques pour toute distribution utilisant une version modérément récente d’OpenSSH.
Pour configurer le serveur SSH sur le système distant
Sur le système Linux, installez et démarrez le serveur OpenSSH :
sudo apt install openssh-server sudo service ssh start
Si vous souhaitez que le serveur
ssh
démarre automatiquement lorsque le système démarre, activez-le à l’aide desystemctl
:sudo systemctl enable ssh
Ouvrez
/etc/ssh/sshd_config
en tant que racine. Modifiez les lignes suivantes (ou ajoutez-les, si elles n’existent pas) :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
Notes
ssh-rsa
est le seul algorithme de clé d’hôte compatible FIPS pris en charge par Visual Studio. Les algorithmesaes*-ctr
sont également compatibles FIPS, mais l’implémentation dans Visual Studio n’est pas approuvée. Les algorithmesecdh-*
d’échange de clés sont compatibles FIPS, mais Visual Studio ne les prend pas en charge.Vous n’êtes pas limité à ces options. Vous pouvez configurer
ssh
pour utiliser d’autres chiffrements, algorithmes de clé d’hôte, et ainsi de suite. D’autres options de sécurité pertinentes que vous pouvez envisager sontPermitRootLogin
,PasswordAuthentication
etPermitEmptyPasswords
. Pour plus d’informations, consultez la pageman
poursshd_config
ou l’article Configuration du serveur SSH.Après avoir enregistré et fermé
sshd_config
, redémarrez le serveur ssh pour appliquer la nouvelle configuration :sudo service ssh restart
Vous allez créer une paire de clés RSA sur votre ordinateur Windows. Ensuite, vous allez copier la clé publique dans le système Linux distant que ssh
doit utiliser.
Pour créer et utiliser un fichier de clé RSA
Sur la machine Windows, générez une paire de clés RSA publique/privée à l’aide de la commande suivante :
ssh-keygen -t rsa -b 4096 -m PEM
La commande crée une clé publique et une clé privée. Par défaut, les clés sont enregistrées dans
%USERPROFILE%\.ssh\id_rsa
et%USERPROFILE%\\.ssh\\id_rsa.pub
. (Dans PowerShell, utilisez$env:USERPROFILE
plutôt que la macro cmd%USERPROFILE%
) Si vous modifiez le nom de la clé, utilisez le nom modifié dans les étapes qui suivent. Nous vous recommandons d’utiliser une phrase secrète pour renforcer la sécurité.À partir de Windows, copiez la clé publique sur la machine Linux :
scp %USERPROFILE%\.ssh\id_rsa.pub user@hostname:
Sur le système Linux, ajoutez la clé à la liste de clés autorisées (et vérifiez que le fichier dispose des autorisations appropriées) :
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys
À présent, vous pouvez tester pour voir si la nouvelle clé fonctionne dans
ssh
. Utilisez-la pour vous connecter à partir de Windows :ssh -i %USERPROFILE%\.ssh\id_rsa user@hostname
Vous avez correctement configuré ssh
, créé et déployé des clés de chiffrement, et testé votre connexion. Vous êtes maintenant prêt à configurer la connexion Visual Studio.
Se connecter au système distant dans Visual Studio
Dans Visual Studio, choisissez Outils > Options dans la barre de menus pour ouvrir la boîte de dialogue Options. Sélectionnez ensuite Multiplateforme > Gestionnaire des connexions pour ouvrir la boîte de dialogue Gestionnaire des connexions.
Si vous n’avez pas encore configuré de connexion dans Visual Studio, lorsque vous générez votre projet pour la première fois, Visual Studio ouvre la boîte de dialogue Gestionnaire de connexions pour vous.
Dans la boîte de dialogue Gestionnaire des connexions, choisissez le bouton Ajouter pour ajouter une nouvelle connexion.
La fenêtre Se connecter au système distant s’affiche.
Dans la boîte de dialogue Se connecter au système distant , entrez les détails de connexion de votre ordinateur distant.
Entrée Description Host Name Nom ou adresse IP de votre appareil cible Port Port sur lequel le service SSH est exécuté, en général 22 Nom d'utilisateur Utilisateur sous le nom duquel s’authentifier Type d’authentification Choisir une Clé privée pour une connexion compatible FIPS Fichier de clé privée Fichier de clé privée créé pour la connexion ssh Phrase secrète Phrase secrète utilisée avec la clé privée sélectionnée ci-dessus Remplacez le type d’authentification par cléprivée. Entrez le chemin d’accès à votre clé privée dans le champ fichier de clé privée. À la place, vous pouvez utiliser le bouton Parcourir pour accéder à votre fichier de clé privée. Ensuite, dans le champ Phrase secrète, entrez la phrase secrète utilisée pour chiffrer votre fichier de clé privée.
Cliquez sur le bouton Se connecter pour tenter une connexion à l’ordinateur distant.
Si la connexion réussit, Visual Studio configure IntelliSense pour utiliser les en-têtes distants. Pour plus d’informations, consultez IntelliSense pour les en-têtes sur les systèmes distants.
Si la connexion échoue, les zones des entrées qui doivent être modifiées seront surlignées en rouge.
Pour plus d’informations sur la résolution des problèmes de connexion, consultez Se connecter à votre ordinateur Linux distant.
Utilitaire de ligne de commande pour le Gestionnaire des connexions
Visual Studio 2019 version 16.5 ou ultérieure : ConnectionManager.exe
est un utilitaire de ligne de commande pour gérer les connexions de développement à distance en dehors de Visual Studio. Il est utile pour des tâches telles que l’approvisionnement d’un nouvel ordinateur de développement. Vous pouvez également l’utiliser pour configurer Visual Studio pour l’intégration continue. Pour obtenir des exemples et une référence complète à la commande ConnectionManager, consultez Référence ConnectionManager.
Facultatif : Activer ou désactiver le mode FIPS
Il est possible d’activer le mode FIPS globalement dans Windows.
Pour activer le mode FIPS, appuyez sur Windows+R pour ouvrir la boîte de dialogue Exécuter, puis exécutez
gpedit.msc
.Développez stratégie d’ordinateur local > Configuration ordinateur > Paramètres Windows > Paramètres de sécurité > Stratégies locales, puis sélectionnez Options de sécurité.
Sous Stratégie, sélectionnez Chiffrement système : utilisez des algorithmes conformes aux normes FIPS pour le chiffrement, le hachage et les signatures., puis appuyez sur Entrée pour ouvrir sa boîte de dialogue.
Sous l’onglet Paramètre local de sécurité, sélectionnez Activé ou Désactivé, puis choisissez OK pour enregistrer vos modifications.
Avertissement
L’activation du mode FIPS peut entraîner l’arrêt ou le comportement inattendu de certaines applications. Pour plus d’informations, consultez le billet de blog Why We’re Not Recommending "FIPS mode" Anymore.
Ressources supplémentaires
Documentation Microsoft sur la validation FIPS 140
FIPS 140-2: Security Requirements for Cryptographic Modules (de NIST)
Cryptographic Algorithm Validation Program: Validation Notes (de NIST)
Billet de blog Microsoft Why We’re Not Recommending "FIPS mode" Anymore
Voir aussi
Configurer un projet Linux
Configurer un projet CMake Linux
Se connecter à un ordinateur Linux distant
Déployer, exécuter et déboguer un projet Linux
Configurer des sessions de débogage CMake
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour