Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die Unterstützung für Linux ist in Visual Studio 2017 und höher verfügbar. Mit FIPS kompatible sichere Linux-Remoteentwicklung ist in Visual Studio 2019 (Version 16.5 oder höher) verfügbar.
Die FIPS-Veröffentlichung (Federal Information Processing Standard) 140-2 ist ein Standard der US-Regierung für kryptografische Module. Implementierungen des Standards werden von NIST überprüft. Windows verfügt über überprüfte Unterstützung für mit FIPS kompatible kryptografische Module. In Visual Studio 2019 (Version 16.5 oder höher) können Sie eine sichere, mit FIPS kompatible kryptografische Verbindung mit Ihrem Linux-System für Remoteentwicklung verwenden.
Im Folgenden wird erläutert, wie Sie eine sichere, mit FIPS kompatible Verbindung zwischen Visual Studio und Ihrem Linux-Remotesystem einrichten. Dieser Leitfaden ist anwendbar, wenn Sie CMake- oder MSBuild-Linux-Projekte in Visual Studio erstellen. Dieser Artikel handelt es sich um die mit FIPS kompatible Version der Verbindungsanweisungen unter Herstellen einer Verbindung mit Ihrem Linux-Remotecomputer.
Vorbereiten einer mit FIPS kompatiblen Verbindung
Einige Vorbereitungsschritte sind erforderlich, um eine mit FIPS kompatible, kryptografisch sichere SSH-Verbindung zwischen Visual Studio und Ihrem Linux-Remotesystem herzustellen. Für Kompatibilität mit FIPS-140-2 unterstützt Visual Studio nur RSA-Schlüssel.
In den Beispielen in diesem Artikel wird Ubuntu 18.04 LTS mit OpenSSH Server Version 7.6 verwendet. Allerdings sollten die Anweisungen für jede Distribution identisch sein, die eine moderate aktuelle Version von OpenSSH verwendet.
So richten Sie den SSH-Server auf dem Remotesystem ein
Installieren und starten Sie auf dem Linux-System den OpenSSH-Server:
sudo apt install openssh-server sudo service ssh startWenn Sie möchten, dass der
ssh-Server beim Start des Systems automatisch gestartet wird, aktivieren Sie ihn mithilfe vonsystemctl:sudo systemctl enable sshÖffnen Sie
/etc/ssh/sshd_configals Root. Bearbeiten Sie die folgenden Zeilen, oder fügen Sie sie hinzu, sofern nicht vorhanden: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-sha1Hinweis
ssh-rsa,rsa-sha2-*undecdsa-sha2-*sind die einzigen von VS unterstützten FIPS-kompatiblen Hostschlüsselalgorithmen. Weitere Informationen zu den von Visual Studio unterstützten Algorithmen finden Sie unter Unterstützte SSH-Algorithmen.Sie sind nicht auf diese Optionen beschränkt. Sie können
sshso konfigurieren, dass andere Verschlüsselungsverfahren, Hostschlüsselalgorithmen usw. verwendet werden. Einige andere relevante Sicherheitsoptionen, die Sie möglicherweise in Erwägung ziehen können, sindPermitRootLogin,PasswordAuthenticationundPermitEmptyPasswords. Weitere Informationen finden Sie auf der Seitemanzusshd_configoder im Artikel Konfiguration des SSH-Servers.Starten Sie nach Speichern und Schließen von
sshd_configden SSH-Server neu, um die neue Konfiguration zu übernehmen:sudo service ssh restart
Als Nächstes erstellen Sie ein ECDSA-Schlüsselpaar auf Ihrem Windows-Computer. Anschließend kopieren Sie den öffentlichen Schlüssel zum Remote-Linux-System zur Verwendung durch ssh.
So erstellen und verwenden Sie eine ECDSA-Schlüsseldatei
Generieren Sie auf dem Windows-Computer ein öffentliches/privates ECDSA-Schlüsselpaar mithilfe dieses Befehls:
ssh-keygen -t ecdsa -m PEMMit diesem Befehl wird ein öffentlicher und einer privater Schlüssel erstellt. Standardmäßig werden die Schlüssel in %USERPROFILE%.ssh\id_ecdsa und %USERPROFILE%.ssh\id_ecdsa.pub gespeichert. (Verwenden Sie in PowerShell $env:USERPROFILE anstelle des cmd-Makros %USERPROFILE%) Schlüssel, die mit RSA generiert werden, werden ebenfalls unterstützt. Wenn Sie den Schlüsselnamen ändern, verwenden Sie den geänderten Namen in den folgenden Schritten. Es wird empfohlen, eine Passphrase zu verwenden, um die Sicherheit zu erhöhen.
Kopieren Sie den öffentlichen Schlüssel aus Windows auf den Linux-Computer:
scp %USERPROFILE%\.ssh\id_ecdsa.pub user@hostname:Fügen Sie den Schlüssel auf dem Linux-System zur Liste der autorisierten Schlüssel hinzu, und stellen Sie sicher, dass die Datei die richtigen Berechtigungen besitzt:
cat ~/id_ecdsa.pub >> ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keysNun können Sie testen, ob der neue Schlüssel in
sshfunktioniert. Verwenden Sie ihn, um sich von Windows aus anzumelden:ssh -i %USERPROFILE%\.ssh\id_ecdsa user@hostname
Sie haben ssh erfolgreich eingerichtet, Verschlüsselungsschlüssel erstellt und bereitgestellt und die Verbindung getestet. Jetzt sind Sie bereit, die Visual Studio-Verbindung einzurichten.
Herstellen einer Verbindung mit dem Remotesystem in Visual Studio
Klicken Sie in Visual Studio in der Menüleiste auf Extras > Optionen, um das Dialogfeld Optionen zu öffnen. Wählen Sie dann Plattformübergreifend > Verbindungs-Manager, um das Dialogfeld „Verbindungs-Manager“ zu öffnen.
Wenn Sie zuvor noch keine Verbindung in Visual Studio eingerichtet haben, öffnet Visual Studio das Dialogfeld „Verbindungs-Manager“, wenn Sie das Projekt erstmals erstellen.
Wählen Sie im Dialogfeld „Verbindungs-Manager“ die Schaltfläche Hinzufügen aus, um eine neue Verbindung hinzuzufügen.
Das Fenster Mit Remotesystem verbinden wird angezeigt.
Geben Sie im Dialogfeld Mit Remotesystem verbinden die Verbindungsdetails Ihres Remotecomputers ein.
Eingabe Beschreibung Hostname Name oder IP-Adresse des Zielgeräts Hafen Port, auf dem der SSH-Dienst ausgeführt wird, in der Regel Port 22 Benutzername Zu authentifizierender Benutzer Authentifizierungstyp Auswählen eines privaten Schlüssels für eine mit FIPS kompatible Verbindung Datei für den privaten Schlüssel Für die SSH-Verbindung erstellte private Schlüsseldatei Passphrase Passphrase mit dem zuvor ausgewählten privaten Schlüssel Ändern Sie den Authentifizierungstyp in Privater Schlüssel. Geben Sie den Pfad zu Ihrem privaten Schlüssel in das Feld Datei des privaten Schlüssels ein. Sie können die Schaltfläche Durchsuchen verwenden, um stattdessen zu Ihrer Datei mit dem privaten Schlüssel zu navigieren. Geben Sie dann die Passphrase in das Feld Passphrase ein, die verwendet wird, um die Datei mit dem privaten Schlüssel zu verschlüsseln.
Klicken Sie auf die Schaltfläche Verbinden, um eine Verbindung mit dem Remotecomputer herzustellen.
Wenn die Verbindung erfolgreich hergestellt wird, konfiguriert Visual Studio IntelliSense für die Verwendung der Remoteheader. Weitere Informationen finden Sie unter IntelliSense für Header auf Remotesystemen.
Wenn die Verbindung nicht erfolgreich hergestellt wird, werden die Eintragsfelder, die geändert werden müssen, rot umrandet.
Weitere Informationen zur Problembehandlung der Verbindung finden Sie unter Herstellen einer Verbindung mit Ihrem Linux-Remotecomputer.
Befehlszeilenhilfsprogramm für den Verbindungs-Manager
Visual Studio 2019, Version 16.5 oder höher: ConnectionManager.exe ist ein Befehlszeilenhilfsprogramm zum Verwalten von Remoteentwicklungsverbindungen außerhalb von Visual Studio. Es ist gut für Aufgaben wie die Bereitstellung eines neuen Entwicklungscomputers geeignet. Sie können es auch zum Einrichten von Visual Studio für Continuous Integration verwenden. Beispiele für den und eine umfassende Referenz zum ConnectionManager-Befehl finden Sie unter ConnectionManager-Referenz.
Optional: Aktivieren oder Deaktivieren des FIPS-Modus
Es ist möglich, den FIPS-Modus in Windows global zu aktivieren.
Um den FIPS-Modus zu aktivieren, drücken Sie WINDOWS+R, um das Dialogfeld Ausführen zu öffnen, und führen Sie dann
gpedit.mscaus.Erweitern Sie Lokale Computerrichtlinie > Computerkonfiguration > Windows-Einstellungen > Sicherheitseinstellungen > Lokale Richtlinien, und wählen Sie dann Sicherheitsoptionen aus.
Wählen Sie unter Richtlinie die Option Systemkryptografie: Mit FIPS kompatiblen Algorithmus für Verschlüsselung, Hashing und Signieren verwenden aus, und drücken Sie dann die EINGABETASTE, um das entsprechende Dialogfeld zu öffnen.
Wählen Sie auf der Registerkarte Lokale Sicherheitseinstellung die Option Aktiviert oder Deaktiviert aus, und wählen Sie dann OK aus, um die Änderungen zu speichern.
Warnung
Das Aktivieren des FIPS-Modus kann dazu führen, dass einige Anwendungen nicht mehr funktionieren oder sich unerwartet verhalten. Weitere Informationen finden Sie im Blogbeitrag Why We’re Not Recommending „FIPS mode“ Anymore (Warum wir den „FIPS-Modus“ nicht mehr empfehlen).
Zusätzliche Ressourcen
Microsoft-Dokumentation zur FIPS 140-Überprüfung
FIPS 140-2: Security Requirements for Cryptographic Modules (FIPS 140-2: Sicherheitsanforderungen für Kryptografiemodule) (von NIST)
Cryptographic Algorithm Validation Program: Validation Notes(Kryptografiealgorithmus-Validierungsprogramm: Validierungshinweise) (von NIST)
Microsoft-Blogbeitrag zu Why We’re Not Recommending „FIPS mode“ Anymore (Warum wir den „FIPS-Modus“ nicht mehr empfehlen)
Siehe auch
Konfigurieren eines Linux-Projekts
Konfigurieren eines Linux CMake-Projekts
Herstellen einer Verbindung mit Ihrem Linux-Remotecomputer
Bereitstellen, Ausführen und Debuggen Ihres Linux-Projekts
Konfigurieren von CMake-Debugsitzungen