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
V systému Linux nainstalujte a spusťte server OpenSSH:
sudo apt install openssh-server sudo service ssh start
Pokud chcete
ssh
, aby se server automaticky spustil při spuštění systému, povolte ho pomocísystemctl
:sudo systemctl enable ssh
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-*
aecdsa-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, jsouPermitRootLogin
,PasswordAuthentication
aPermitEmptyPasswords
. Další informace najdete naman
stráncesshd_config
nebo v článku Konfigurace serveru SSH.Po uložení a zavření
sshd_config
restartujte 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
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.
Z Windows zkopírujte veřejný klíč do počítače s Linuxem:
scp %USERPROFILE%\.ssh\id_ecdsa.pub user@hostname:
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
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
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.
V dialogovém okně Správce připojení zvolte tlačítko Přidat a přidejte nové připojení.
Zobrazí se okno Připojit ke vzdálenému systému .
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.
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ě.
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.
Pokud chcete povolit režim FIPS, otevřete stisknutím windows +Rdialogové okno Spustit a spusťte
gpedit.msc
.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í.
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.
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"
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