Sdílet prostřednictvím


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

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

Fips (Federal Information Processing Standard) Publication 140-2 je americký státní standard pro kryptografické moduly. Implementace standardu ověřuje 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ších můžete ke vzdálenému vývoji 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 systémem Linux. Tato příručka je použitelná při sestavování projektů CMake nebo MSBuild Linux v sadě Visual Studio. Tento článek je verzí kompatibilní se standardem FIPS pokynů k připojení v tématu Připojení ke vzdálenému počítači s Linuxem.

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

K použití kryptograficky zabezpečeného připojení SSH mezi sadou Visual Studio a vzdáleným systémem Linux se vyžaduje určitá příprava. Pro 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 všechny distribuce používající mírně nedávnou verzi 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, aby se ssh server automaticky spustil při spuštění systému, povolte ho pomocí příkazu systemctl:

    sudo systemctl enable ssh
    
  3. Otevřete /etc/ssh/sshd_config jako kořenový adresář. 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 je jediný algoritmus klíče hostitele kompatibilní se standardem FIPS, který VS podporuje. Algoritmy aes*-ctr jsou také kompatibilní se standardem FIPS, ale implementace v sadě Visual Studio není schválená. Algoritmy ecdh-* výměny klíčů jsou kompatibilní se standardem FIPS, ale Visual Studio je nepodporuje.

    Tyto možnosti vás neomezují. Můžete nakonfigurovat ssh použití jiných šifer, algoritmů klíče hostitele atd. Mezi další relevantní možnosti zabezpečení, které byste měli zvážit, patří PermitRootLogin, PasswordAuthenticationa PermitEmptyPasswords. Další informace najdete na man stránce nebo sshd_config 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 na počítači s Windows pár klíčů RSA. Pak zkopírujete veřejný klíč do vzdáleného systému Linux, který sshpoužije .

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

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

    ssh-keygen -t rsa -b 4096 -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_rsa a %USERPROFILE%\\.ssh\\id_rsa.pub. (V PowerShellu použijte $env:USERPROFILE místo cmd makra %USERPROFILE%) Pokud změníte název klíče, použijte změněný název v následujících krocích. Pro zvýšení zabezpečení doporučujeme používat přístupové heslo.

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

    scp %USERPROFILE%\.ssh\id_rsa.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_rsa.pub >> ~/.ssh/authorized_keys
    chmod 600 ~/.ssh/authorized_keys
    
  4. Teď můžete otestovat, jestli nový klíč funguje v nástroji ssh. Použijte ho k přihlášení z Windows:

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

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

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

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

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

  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í Je zvýrazněné Správce připojení C a plus > pro různé platformy>.

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

    Snímek obrazovky s oknem Připojit ke vzdálenému systému, ve kterém jsou textová pole s názvem hostitele, portem, uživatelským jménem, typem ověřování a heslem

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

    Entry Description
    Název hostitele Název nebo IP adresa cílového zařízení
    Port Port, na kterém je spuštěná služba SSH, 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í kompatibilní se standardem FIPS
    Soubor privátního klíče Soubor privátního klíče vytvořený pro připojení SSH
    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 privátnímu klíči. K přechodu na soubor privátního klíče můžete použít tlačítko Procházet . Potom do pole Přístupové heslo zadejte heslo použité k zašifrování souboru privátního klíče.

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

    Pokud je připojení úspěšné, visual Studio nakonfiguruje IntelliSense tak, aby používala vzdálené hlavičky. Další informace najdete v tématu IntelliSense pro hlavičky ve vzdálených systémech.

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

    Snímek obrazovky s oknem Připojit ke vzdálenému systému, jehož textová pole s názvem hostitele a portem jsou červeně označená jako textová pole, která označují, že je potřeba 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 to 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 najdete v tématu Referenční informace ke službě ConnectionManager.

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

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

  1. Pokud chcete povolit režim FIPS, stisknutím kláves Windows+R otevřete dialogové okno Spustit a pak spusťte gpedit.mscpříkaz .

  2. Rozbalte Položku Zásady > místního počítače Konfigurace > počítače Nastavení > systému Windows Nastavení > zabezpečení Místní zásady a vyberte Možnosti zabezpečení.

  3. V části Zásady vyberte Kryptografie systému: K šifrování, hashování a podepisování používejte algoritmy kompatibilní se standardem FIPS a stisknutím klávesyEnter otevřete jeho dialogové okno.

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

Upozornění

Povolení režimu FIPS může způsobit, že se některé aplikace neočekávaně naruší 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í kryptografických modulů (od NIST)

Program ověřování 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