Připojení k cílovému systému Linux v Visual Studio

Podpora Linuxu je dostupná v Visual Studio 2017 a novějších verzích.

Linuxový projekt můžete nakonfigurovat tak, aby cílil na vzdálený počítač nebo na Subsystém Windows pro Linux (WSL). Pro vzdálené počítače i WSL musíte nastavit vzdálené připojení v Visual Studio 2017.

Linuxový projekt můžete nakonfigurovat tak, aby cílil na vzdálený počítač nebo na Subsystém Windows pro Linux (WSL). Pro vzdálený počítač musíte nastavit vzdálené připojení v Visual Studio. Pokud se chcete připojit k WSL, přeskočte k části Připojení wsl.

Při použití vzdáleného připojení Visual Studio linuxové projekty C++ na vzdáleném počítači. Nezáleží na tom, jestli se jedná o fyzický počítač, virtuální počítač v cloudu nebo WSL. Při sestavování projektu Visual Studio zdrojový kód do vzdáleného počítače s Linuxem. Potom se kód zkompiluje na základě Visual Studio kódu.

Poznámka

Od verze Visual Studio 2019 verze 16.5 Visual Studio podporuje zabezpečená kryptografická připojení kompatibilní se standardem FIPS (Federal Information Processing Standard) 140-2 k systémům Linux pro vzdálený vývoj. Pokud chcete použít připojení kompatibilní se standardem FIPS, postupujte podle kroků v článku Nastavení zabezpečeného vzdáleného vývoje Linuxu kompatibilního se standardem FIPS.

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

Pokud ještě nemáte systém Linux nastavený a spuštěný, nainstalujte ho podle ssh těchto kroků. 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 každou distribuci, která používá mírně nedávnou verzi OpenSSH.

  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 server ssh při spuštění systému automaticky s kategoriemi shodl shol s jeho použitím povolte:

    sudo systemctl enable ssh
    

Nastavení vzdáleného připojení

  1. V Visual Studio řádku nabídek zvolte Možnosti nástrojů. Otevře se dialogové okno Možnosti. Pak výběrem možnosti Správce připojení platformy otevřete dialogové okno Správce připojení dat.

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

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

    Snímek obrazovky Správce připojení dialogové okno

    V obou scénáři se Připojení okno Připojení ke vzdálenému systému.

    Snímek obrazovky Připojení okna Vzdáleného systému

  3. Zadejte následující informace:

    Entry Popis
    Název hostitele Název nebo IP adresa cílového zařízení
    Port Port, na který běží služba SSH, obvykle 22
    Uživatelské jméno Uživatel, který se má ověřit jako
    Typ ověřování Podporují se hesla i privátní klíče.
    Heslo Heslo pro zadané uživatelské jméno
    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

    K ověření můžete použít heslo nebo soubor klíče a heslo. Pro mnoho vývojových scénářů je ověřování heslem dostatečné, ale soubory klíčů jsou bezpečnější. Pokud už pár klíčů máte, můžete ho znovu použít. V Visual Studio podporuje pouze klíče RSA a DSA pro vzdálená připojení.

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

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

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

    Snímek obrazovky zobrazující Správce připojení Chyba

    Pokud k ověřování používáte soubory klíčů, ujistěte se, že je server SSH cílového počítače spuštěný a správně nakonfigurovaný.

Ověření klíče hostitele

V Visual Studio verze 16.10 nebo novější budete požádáni o ověření otisku klíče hostitele serveru vždy, když se Visual Studio poprvé připojí ke vzdálenému systému. Tento proces možná znáte, pokud jste už dříve používali klienta příkazového řádku OpenSSH nebo PuTTY. Otisk prstu identifikuje server. Visual Studio otisk prstu použije k tomu, aby se zajistilo, že se připojuje k zamýšlenému a důvěryhodnému serveru.

Při prvním Visual Studio nového vzdáleného připojení budete požádáni, abyste přijali nebo odepřeli otisk klíče hostitele prezentované serverem. Nebo kdykoli se změní otisk prstu v mezipaměti. Otisk prstu můžete ověřit také na vyžádání: vyberte připojení v okně Správce připojení zvolte Ověřit.

Pokud upgradujete ze starší Visual Studio verze 16.10 nebo novější, bude se stávajícími vzdálenými připojeními zacházet jako s novými připojeními. Nejprve se zobrazí výzva k přijetí otisku klíče hostitele. Potom Visual Studio připojení a přijímaný otisk prstu se zachytá do mezipaměti.

Vzdálená připojení můžete aktualizovat také pomocí ConnectionManager.exeupdate argumentu .

Podporované algoritmy SSH

Počínaje Visual Studio verze 16.9 se odebrala podpora starších nezabezpečených algoritmů SSH používaných k šifrování dat a výměny klíčů. Podporují se pouze následující algoritmy. Podporují se pro komunikaci SSH mezi klientem a serverem i mezi serverem a klientem:

Typ algoritmu Podporované algoritmy
Šifrování aes128-cbc
aes128-cbc
aes192-cbc
aes192-ctr
aes256-cbc
aes256-ctr
HMAC hmac-sha2-256
hmac-sha2-256
Výměna klíčů diffie-hellman-group14-sha256
diffie-hellman-group16-sha512
diffie-hellman-group-exchange-sha256
ecdh-sha2-nistp256
ecdh-sha2-nistp384
ecdh-sha2-nistp521
Klíč hostitele ecdsa-sha2-nistp256
ecdsa-sha2-nistp384
ecdsa-sha2-nistp521
ssh-dss
ssh-rsa

Konfigurace serveru SSH

Zaprvé, trochu pozadí. Algoritmus SSH, který se má použít, není možné vybrat Visual Studio. Místo toho se algoritmus určí během počáteční handshake se serverem SSH. Každá strana (klient a server) poskytuje seznam algoritmů, které podporuje, a pak je vybrán první algoritmus společný pro oba. Připojení bude úspěšné, pokud je mezi Visual Studio a serverem alespoň jeden společný algoritmus pro šifrování, HMAC, výměnu klíčů atd.

Konfigurační soubor Open SSH ( ) nekonfiguruje, sshd_config který algoritmus se má použít ve výchozím nastavení. Pokud nejsou zadány žádné algoritmy, měl by server SSH používat zabezpečené výchozí hodnoty. Tato výchozí nastavení závisí na verzi a dodavateli serveru SSH. Pokud Visual Studio nepodporuje tato výchozí nastavení, pravděpodobně se zobrazí chyba podobná této: "Ke vzdálenému systému se nelze připojit. Nenašel se žádný běžný algoritmus HMAC pro server." Chyba se může zobrazit také v případě, že je server SSH nakonfigurovaný tak, aby Visual Studio nepodporuje.

Výchozí server SSH ve většině moderních distribucí Linuxu by měl fungovat s Visual Studio. Můžete ale používat starší server SSH, který je nakonfigurovaný na používání starších nezabezpečených algoritmů. Následující příklad vysvětluje, jak aktualizovat na bezpečnější verze.

V následujícím příkladu používá server SSH nezabezpečený algoritmus, který nepodporuje Visual Studio hmac-sha1 16.9. Pokud server SSH používá OpenSSH, můžete soubor upravit, jak je znázorněno níže, abyste /etc/ssh/sshd_config umožnili bezpečnější algoritmy. Informace o tom, jak nakonfigurovat jiné servery SSH, najdete v dokumentaci k serveru.

Nejprve ověřte, že sada algoritmů, které váš server používá, obsahuje algoritmy podporované Visual Studio. Na vzdáleném počítači spusťte následující příkaz, který zobrazí seznam algoritmů podporovaných serverem:

ssh -Q cipher; ssh -Q mac; ssh -Q kex; ssh -Q key

Příkaz vytvoří výstup, jako je:

3des-cbc
aes128-cbc
aes192-cbc
aes256-cbc
...
ecdsa-sha2-nistp521-cert-v01@openssh.com
sk-ecdsa-sha2-nistp256-cert-v01@openssh.com

Výstup zobrazí seznam všech algoritmů šifrování, HMAC, výměny klíčů a klíčů hostitele, které podporuje váš server SSH. Pokud seznam neobsahuje algoritmy podporované službou Visual Studio, budete muset před pokračováním upgradovat server SSH.

Algoritmy podporované ve vzdálených Visual Studio můžete povolit /etc/ssh/sshd_config úpravou na vzdáleném počítači. Následující příklady ukazují, jak do tohoto konfiguračního souboru přidat různé typy algoritmů.

Tyto příklady lze přidat kdekoli v /etc/ssh/sshd_config . Ujistěte se, že jsou na vlastních řádcích.

Po úpravě souboru restartujte server SSH ( v Ubuntu) a zkuste se znovu sudo service ssh restart připojit z Visual Studio.

Příklad šifry

Přidat: Ciphers <algorithms to enable>
Příklad: Ciphers aes128-cbc,aes256-cbc

Příklad HMAC

Přidat: MACs <algorithms to enable>
Příklad: MACs hmac-sha2-256,hmac-sha2-512

Příklad výměny klíčů

Přidat: KexAlgorithms <algorithms to enable>
Příklad: KexAlgorithms ecdh-sha2-nistp256,ecdh-sha2-nistp384

Příklad klíče hostitele

Přidat: HostKeyAlgorithms <algorithms to enable>
Příklad: HostKeyAlgorithms ssh-dss,ssh-rsa

Protokolování pro vzdálená připojení

Můžete povolit protokolování, které vám pomůže vyřešit potíže s připojením. V řádku nabídek vyberte Nástroje Možnosti. V dialogovém okně Možnosti vyberte Protokolování napříč platformami:

Snímek obrazovky se vzdáleným protokolováním

Protokoly zahrnují připojení, všechny příkazy odeslané do vzdáleného počítače (jejich text, ukončovací kód a čas spuštění) a všechny výstupy z Visual Studio do prostředí. Protokolování funguje u všech projektů CMake pro více platforem MSBuild linuxových projektů založených na Visual Studio.

Výstup můžete nakonfigurovat tak, aby v okně Výstup přecoul do souboru nebo do podokna Protokolování napříč platformami. U MSBuild linuxových projektů MSBuild příkazy odeslané do vzdáleného počítače nejsou směrovány do okno Výstup, protože se vysílaly mimo proces. Místo toho se zaprotokoluje do souboru s předponou "msbuild_".

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

Visual Studio 2019 verze 16.5nebo novější: 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í Visual Studio kontinuální integrace. Příklady a úplný odkaz na příkaz ConnectionManager najdete v tématu ConnectionManager – referenční informace.

Přesměrování portů TCP

Příkaz se používá v linuxových projektech založených MSBuild i projektech CMake ke kopírování hlaviček ze vzdáleného systému do Windows pro rsyncrsync Pokud nemůžete povolit přesměrování portů TCP, zakažte automatické stahování vzdálených hlaviček. Pokud ho chcete zakázat, použijte nástroje Možnosti pro více >> platforem Správce připojení > vzdálených hlaviček IntelliSense Manager. Pokud vzdálený systém nemá povolené přesměrování portů TCP, zobrazí se tato chyba při zahájení stahování vzdálených hlaviček technologie IntelliSense:

Snímek obrazovky zobrazující chybu záhlaví

rsyncpoužívá také Visual Studio CMake ke kopírování zdrojových souborů do vzdáleného systému. Pokud nemůžete povolit přesměrování portů TCP, můžete použít jako metodu zdrojů sftp vzdáleného kopírování. sftp je často pomalejší než , ale není závislá na přesměrování rsync portů TCP. Metodu zdrojů vzdáleného kopírování můžete spravovat pomocí remoteCopySourcesMethod vlastnosti v editoru remoteCopySourcesMethod. Pokud je přesměrování portů TCP ve vzdáleném systému zakázané, při prvním vyvolání se ve výstupním okně CMake zobrazí rsync chyba.

Snímek obrazovky zobrazující chybu Rsync

gdbserver lze použít k ladění na integrovaných zařízeních. Pokud nemůžete povolit přesměrování portů TCP, musíte použít pro všechny gdb scénáře vzdáleného ladění. gdb se ve výchozím nastavení používá při ladění projektů ve vzdáleném systému.

Visual Studio podpora Linuxu je závislá na přesměrování portů TCP. Systémy i jsou ovlivněny, pokud je ve vzdáleném systému rsyncgdbserver zakázané předávání portů TCP. Pokud vás tato závislost ovlivní, hlasujte pro tento lístek návrhu na webu Developer Community.

Připojení na WSL

V Visual Studio 2017 použijete stejný postup pro připojení k WSL jako na vzdáleném počítači s Linuxem. Jako localhost Název hostitele localhost.

Od verze Visual Studio 2019 verze 16.1 Visual Studio nativní podporu pro používání jazyka C++ s Subsystém Windows pro Linux (WSL). To znamená, že můžete přímo sestavovat a ladit na místní instalaci WSL. Už není nutné přidávat vzdálené připojení ani konfigurovat SSH. Podrobnosti o instalaci WSL najdete tady.

Pokud chcete nakonfigurovat instalaci WSL pro práci s Visual Studio, budete potřebovat nainstalované následující nástroje: nebo , , (vyžaduje se jenom pro projekty gccclang CMake s využitím Visual Studio gdbmakeninja-build 2019 verze 16.6 nebo novější), rsync a zip . Můžete je nainstalovat do distribucí, které se používají pomocí tohoto příkazu, který také nainstaluje apt kompilátor g++:

sudo apt install g++ gdb make ninja-build rsync zip

Další informace najdete v tématu Stažení, instalace a nastavení linuxové úlohy.

Informace o konfiguraci MSBuild projektu pro WSL najdete v tématu Konfigurace linuxového projektu. Informace o konfiguraci projektu CMake pro WSL najdete v tématu Konfigurace projektu CMake pro Linux. Pokud chcete postupovat podle podrobných pokynů k vytvoření jednoduché konzolové aplikace pomocí WSL, podívejte se na tento úvodní blogový příspěvek na C++ s Visual Studio 2019 a knihovnou Subsystém Windows pro Linux (WSL).

Viz také

Konfigurace projektu Linux
Konfigurace projektu Linux CMake
Nasazení, spuštění a ladění projektu Linux
Konfigurace ladicích relací CMake