Sdílet prostřednictvím


Nastavení zabezpečeného vzdáleného vývoje pro Linux kompatibilního se standardem FIPS

Podpora Linuxu je dostupná v sadě Visual Studio 2017 a novějších verzích. Zabezpečený vývoj pro Linux kompatibilní se standardem FIPS je k dispozici v sadě Visual Studio 2019 verze 16.5 a novější.

Publikace FIPS (Federal Information Processing Standard) 140-2 je standard státní správy USA pro kryptografické moduly. Implementace standardu jsou ověřeny nist. Systém Windows ověřil podporu kryptografických modulů kompatibilních se standardem FIPS. V sadě Visual Studio 2019 verze 16.5 a novější můžete pro vzdálený vývoj použít zabezpečené kryptografické připojení kompatibilní se standardem FIPS.

Tady je postup, jak nastavit zabezpečené připojení kompatibilní se standardem FIPS mezi sadou Visual Studio a vzdáleným linuxovým systémem. Tato příručka se dá použít při sestavování projektů CMake nebo MSBuild Linux v sadě Visual Studio. Tento článek je verze pokynů pro připojení kompatibilní s FIPS v části Připojení ke vzdálenému počítači s Linuxem.

Příprava připojení kompatibilního se standardem FIPS

K použití kryptografického připojení SSH mezi sadou Visual Studio a vzdáleným linuxovým systémem se vyžaduje určitá příprava. V případě dodržování předpisů FIPS-140-2 podporuje Visual Studio pouze klíče RSA.

Příklady v tomto článku používají Ubuntu 18.04 LTS se serverem OpenSSH verze 7.6. Pokyny by ale měly být stejné pro jakoukoli distribuci pomocí středně nedávné verze OpenSSH.

Nastavení serveru SSH ve vzdáleném systému

  1. V systému Linux nainstalujte a spusťte server OpenSSH:

    sudo apt install openssh-server
    sudo service ssh start
    
  2. Pokud chcete ssh , aby se server automaticky spustil při spuštění systému, povolte ho pomocí systemctl:

    sudo systemctl enable ssh
    
  3. Otevřete /etc/ssh/sshd_config jako kořen. Upravte (nebo přidejte, pokud neexistují) následující řádky:

    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
    

    Poznámka:

    ssh-rsa, rsa-sha2-*a ecdsa-sha2-* jsou jedinými algoritmy klíče hostitele kompatibilní se standardem FIPS, které VS podporuje. Další informace o algoritmech, které Visual Studio podporuje, naleznete v tématu Podporované algoritmy SSH.

    Nejste omezeni na tyto možnosti. Můžete nakonfigurovat ssh použití jiných šifer, algoritmů klíčů hostitele atd. Některé další relevantní možnosti zabezpečení, které byste mohli zvážit, jsou PermitRootLogin, PasswordAuthenticationa PermitEmptyPasswords. Další informace najdete na man stránce sshd_config nebo v článku Konfigurace serveru SSH.

  4. Po uložení a zavření sshd_configrestartujte server ssh, aby se použila nová konfigurace:

    sudo service ssh restart
    

V dalším kroku vytvoříte pár klíčů ECDSA na počítači s Windows. Pak zkopírujete veřejný klíč do vzdáleného systému Linux, který bude používat ssh.

Vytvoření a použití souboru klíče ECDSA

  1. Na počítači s Windows vygenerujte pomocí tohoto příkazu pár veřejného nebo privátního klíče ECDSA:

    ssh-keygen -t ecdsa -m PEM
    

    Příkaz vytvoří veřejný klíč a privátní klíč. Ve výchozím nastavení se klíče ukládají do %USERPROFILE%.ssh\id_ecdsa a %USERPROFILE%.ssh\id_ecdsa.pub. (V PowerShellu použijte místo cmd makra %USERPROFILE%proměnnou $env:USERPROFILE.) Podporovány jsou také klíče vygenerované pomocí RSA. Pokud změníte název klíče, použijte změněný název v následujícím postupu. Pro zvýšení zabezpečení doporučujeme použít přístupové heslo.

  2. Z Windows zkopírujte veřejný klíč do počítače s Linuxem:

    scp %USERPROFILE%\.ssh\id_ecdsa.pub user@hostname:
    
  3. V systému Linux přidejte klíč do seznamu autorizovaných klíčů a ujistěte se, že soubor má správná oprávnění:

    cat ~/id_ecdsa.pub >> ~/.ssh/authorized_keys
    chmod 600 ~/.ssh/authorized_keys
    
  4. Nyní můžete otestovat, zda nový klíč funguje v ssh. Použijte ho k přihlášení z Windows:

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

Úspěšně jste nastavili ssh, vytvořili a nasadili šifrovací klíče a otestovali připojení. Teď jste připraveni nastavit připojení sady Visual Studio.

Připojení ke vzdálenému systému v sadě Visual Studio

  1. V sadě Visual Studio zvolte > nástrojů na řádku nabídek a otevřete dialogové okno Možnosti. Potom výběrem > křížové platformy otevřete dialogové okno Správce připojení.

    Pokud jste ještě nenastavili připojení v sadě Visual Studio, otevře visual Studio při prvním sestavení projektu dialogové okno Správce připojení za vás.

  2. V dialogovém okně Správce připojení zvolte tlačítko Přidat a přidejte nové připojení.

    Snímek obrazovky s podoknem možností v dialogovém okně Správce připojení Křížová platforma > C plus plus > Správce připojení je zvýrazněná.

    Zobrazí se okno Připojit ke vzdálenému systému .

    Snímek obrazovky s oknem Připojit ke vzdálenému systému, které obsahuje textová pole pro název hostitele, port, uživatelské jméno, typ ověřování a heslo

  3. V dialogovém okně Připojit ke vzdálenému systému zadejte podrobnosti o připojení vzdáleného počítače.

    Položka Popis
    Název hostitele Název nebo IP adresa cílového zařízení
    Port Port, na kterém je služba SSH spuštěná, obvykle 22
    Uživatelské jméno Uživatel, který se má ověřit jako
    Typ ověřování Volba privátního klíče pro připojení vyhovující standardu FIPS
    Soubor privátního klíče Soubor privátního klíče vytvořený pro připojení ssh
    Přístupové heslo Heslo použité s privátním klíčem vybraným výše

    Změňte typ ověřování na privátní klíč. Do pole Soubor privátního klíče zadejte cestu k vašemu privátnímu klíči. Místo toho můžete přejít k souboru privátního klíče pomocí tlačítka Procházet . Potom do pole Přístupové heslo zadejte heslo použité k šifrování souboru privátního klíče.

  4. Zvolte tlačítko Připojit a pokuste se o připojení ke vzdálenému počítači.

    Pokud připojení proběhne úspěšně, Visual Studio nakonfiguruje Technologii IntelliSense tak, aby používala vzdálená záhlaví. Další informace naleznete v intelliSense pro hlavičky ve vzdálených systémech.

    Pokud připojení selže, vstupní pole, která je potřeba změnit, jsou zobrazena červeně.

    Snímek obrazovky s oknem Připojit ke vzdálenému systému s názvem hostitele a textovými poli portu označenými červeně, aby bylo možné je změnit

    Další informace o řešení potíží s připojením najdete v tématu Připojení ke vzdálenému počítači s Linuxem.

Nástroj příkazového řádku pro Správce připojení

Visual Studio 2019 verze 16.5 nebo novější: ConnectionManager.exe je nástroj příkazového řádku pro správu vzdálených vývojových připojení mimo Visual Studio. Je užitečné pro úlohy, jako je zřízení nového vývojového počítače. Nebo ho můžete použít k nastavení sady Visual Studio pro kontinuální integraci. Příklady a úplný odkaz na příkaz ConnectionManager naleznete v tématu ConnectionManager reference.

Volitelné: Povolení nebo zakázání režimu FIPS

Režim FIPS je možné povolit globálně ve Windows.

  1. Pokud chcete povolit režim FIPS, otevřete stisknutím windows +Rdialogové okno Spustit a spusťte gpedit.msc.

  2. Rozbalte položku > konfigurace počítače konfigurace >> počítače s nastavením > zabezpečení nastavení systému Windows a vyberte Možnosti zabezpečení.

  3. V části Zásady vyberte systémovou kryptografii: Pro šifrování, hashování a podepisování použijte algoritmy kompatibilní se standardem FIPS a potom stisknutím klávesy Enter otevřete jeho dialogové okno.

  4. Na kartě Místní nastavení zabezpečení vyberte Povoleno nebo Zakázáno a potom zvolte OK a uložte provedené změny.

Upozorňující

Povolení režimu FIPS může způsobit, že se některé aplikace neočekávaně přeruší nebo se budou chovat neočekávaně. Další informace najdete v blogovém příspěvku , proč už nedoporučujeme "režim FIPS".

Další materiály

Dokumentace Microsoftu k ověřování FIPS 140

FIPS 140-2: Požadavky na zabezpečení pro kryptografické moduly (od NIST)

Ověřovací program kryptografických algoritmů: Ověřovací poznámky (od NIST)

Příspěvek na blogu Microsoftu o tom, proč už nedoporučujeme "režim FIPS"

Konfigurace serveru SSH

Viz také

Konfigurace projektu Linux
Konfigurace projektu Linux CMake
Připojení ke vzdálenému počítači s Linuxem
Nasazení, spuštění a ladění projektu Linux
Konfigurace ladicích relací CMake