Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
A Linux-támogatás a Visual Studio 2017-ben és újabb verzióiban érhető el.
Linux-projektet úgy konfigurálhat, hogy egy távoli gépet vagy a Linux windowsos alrendszerét (WSL) célozza meg. A távoli gépekhez és a WSL-hez is távoli kapcsolatot kell beállítania a Visual Studio 2017-ben.
Linux-projektet úgy konfigurálhat, hogy egy távoli gépet vagy a Linux windowsos alrendszerét (WSL) célozza meg. Távoli gép esetén távoli kapcsolatot kell beállítania a Visual Studióban. A WSL-hez való csatlakozáshoz ugorjon tovább a Csatlakozás a WSL-hez szakaszhoz.
Távoli kapcsolat használata esetén a Visual Studio C++ Linux-projekteket készít a távoli gépen. Nem számít, hogy fizikai gépről, felhőbeli virtuális gépről vagy WSL-ről van-e szó.
A projekt létrehozásához a Visual Studio a forráskódot a távoli Linux-számítógépre másolja. Ezután a kód a Visual Studio beállításai alapján lesz lefordítva.
Jegyzet
A Visual Studio 2019 16.5-ös verziójától kezdve a Visual Studio támogatja a biztonságos, Federal Information Processing Standard (FIPS) 140-2 szabványnak megfelelő titkosítási kapcsolatokat Linux rendszerekhez távoli fejlesztés céljából. FIPS-kompatibilis kapcsolat használatához kövesse inkább a FIPS-kompatibilis biztonságos távoli Linux-fejlesztési környezet beállításának lépéseit.
Az SSH-kiszolgáló beállítása a távoli gépen
Ha ssh még nincs beállítva és fut a Linux rendszeren, a telepítéshez kövesse az alábbi lépéseket. A cikkben szereplő példák az Ubuntu 18.04 LTS-t használják az OpenSSH-kiszolgáló 7.6-os verziójával. Az Utasításoknak azonban meg kell egyeznie minden olyan disztribúció esetében, amely az OpenSSH mérsékelten friss verzióját használja.
Linux rendszeren telepítse és indítsa el az OpenSSH-kiszolgálót:
sudo apt install openssh-server sudo service ssh startHa azt szeretné, hogy az ssh-kiszolgáló automatikusan elinduljon a rendszer indításakor, engedélyezze a systemctl használatával:
sudo systemctl enable ssh
A távoli kapcsolat beállítása
A Helyi Windows rendszer Visual Studiójában válassza a menüsáv Eszközök > beállításai elemét a Beállítások párbeszédpanel megnyitásához. Ezután válassza Platformfüggetlen > Kapcsolatkezelő lehetőséget a Kapcsolatkezelő párbeszédpanel megnyitásához.
Ha korábban még nem állított be kapcsolatot a Visual Studióban, a projekt első létrehozásakor a Visual Studio megnyitja Önnek a Connection Manager párbeszédpanelt.
A Kapcsolatkezelő párbeszédpanelen válassza a hozzáadása gombot új kapcsolat hozzáadásához.
A Beállítások panelen a CrossPlatform > C++ > Connection Manager van kiválasztva, és a Hozzáadás gomb ki van emelve.
Meglévő kapcsolat szerkesztéséhez válassza a Szerkesztéslehetőséget. Mindkét esetben megjelenik a Csatlakozás távoli rendszerhez ablak.
A Csatlakozás távoli rendszerhez ablakban a gazdagép neve, a port, a felhasználónév, a hitelesítési típus és a jelszó mezői találhatók. A port értéke 22. A hitelesítési típus "Jelszó" értékre van állítva.
Adja meg a következő adatokat:
Bejegyzés Leírás állomásnév A céleszköz neve vagy IP-címe port Port, amelyen az SSH szolgáltatás fut, általában 22 felhasználónév Hitelesítést végző felhasználó Hitelesítési típus A jelszó és a titkos kulcs egyaránt támogatott jelszó A megadott felhasználónév jelszava titkos kulcsfájl SSH-kapcsolathoz létrehozott titkos kulcsfájl jelszó A korábban kiválasztott titkos kulccsal használt jelszó A Csatlakozás gombot csak akkor választhatja ki, ha az összes szükséges mező be nem fejeződik, és a port értéke 1 és 65535 közötti egész szám.
A hitelesítéshez használhat jelszót vagy kulcsfájlt és jelszót. A kulcsfájlok biztonságosabbak, mint a felhasználónév/jelszó. Ha már van kulcspárja, újra felhasználhatja.
A Visual Studio 17.10 előtti verziói támogatják az Elliptikus Görbe (EC), a Rivert-Shamir-Adleman (RSA) és a digitális aláírási algoritmus (DSA) kulcsait a távoli kapcsolatokhoz. Biztonsági okokból a DSA-kulcsok már nem támogatottak a VS 17.10-ben és újabb verzióiban. Az RSA-kulcsok a VS 17.10-ben és a VS 17.11-ben sem támogatottak, de egyes típusok a VS 17.12-ben és újabb verziókban is támogatottak. A kapcsolatkezelővel kompatibilis kulcspár létrehozásához használja a következő parancsot:
ssh-keygen -m pem -t ecdsa -f <key-name>Jegyzet
Ha a titkos kulcs létrehozásához használja
ssh-keygen, meg kell adnia a kapcsolót-m pem, vagy a Visual Studio nem fogadja el a kulcsot. Ha a privát kulcsa-----BEGIN OPENSSH PRIVATE KEY------zal kezdődik, akkor aztssh-keygen -p -f <FILE> -m pem-gyel kell konvertálnia.A távoli számítógéphez való csatlakozáshoz válassza a Csatlakozás gombot.
Ha a kapcsolat sikeres, a Visual Studio konfigurálja az IntelliSense-t a távoli fejlécek használatára. További információért lásd a IntelliSense a távoli rendszerek fejléceire vonatkozó részleteket.
Ha a kapcsolat meghiúsul, megjelenik egy hibainformációt tartalmazó információs sáv, és a módosítani kívánt mezők pirossal jelennek meg.
Ha kulcsfájlokat használ a hitelesítéshez, győződjön meg arról, hogy a célgép SSH-kiszolgálója megfelelően fut és konfigurálva van.
Ha nem tud csatlakozni a WSL-hez
localhost, olvassa el A WSLlocalhostkapcsolati problémáinak kijavítása.
Gazdagépkulcs ellenőrzése
A Visual Studio 16.10-es vagy újabb verziójában a rendszer arra kéri, hogy ellenőrizze a kiszolgáló gazdakulcsának ujjlenyomatát, amikor a Visual Studio először csatlakozik egy távoli rendszerhez. Ha korábban már használta az OpenSSH parancssori ügyfelet vagy a PuTTY-t, akkor lehet, hogy ismeri ezt a folyamatot. Az ujjlenyomat azonosítja a kiszolgálót. A Visual Studio az ujjlenyomattal biztosítja, hogy a kívánt és megbízható kiszolgálóhoz csatlakozzon.
Amikor a Visual Studio először hoz létre új távoli kapcsolatot, a rendszer felkéri, hogy fogadja el vagy tiltsa le a kiszolgáló által bemutatott gazdakulcs ujjlenyomatát. Amikor változások történnek a gyorsítótárban tárolt ujjlenyomaton. Kérheti az ujjlenyomat ellenőrzését is: válasszon ki egy kapcsolatot a Connection Manager alkalmazásban, majd válassza az Ellenőrzéslehetőséget.
Ha egy régebbi verzióról frissít a Visual Studio 16.10-es vagy újabb verziójára, a meglévő távoli kapcsolatokat új kapcsolatként kezeli. A rendszer először a gazdakulcs ujjlenyomatának elfogadását kéri. Ezután a Visual Studio létrehoz egy kapcsolatot, és gyorsítótárazza az elfogadott ujjlenyomatot.
A távoli kapcsolatokat a ConnectionManager.exe használatával is frissítheti a update argumentum.
Támogatott SSH-algoritmusok
A Visual Studio 16.9-es verziójától kezdve a rendszer eltávolítja az adatok titkosításához és a kulcsok cseréjéhez használt régebbi, nem biztonságos SSH-algoritmusok támogatását. Csak a következő algoritmusok támogatottak. Az ügyfelek közötti és a kiszolgáló–ügyfél SSH-kommunikáció esetében is támogatottak:
| Algoritmus típusa | Támogatott algoritmusok |
|---|---|
| Titkosítás | aes128-cbcaes128-ctraes192-cbcaes192-ctraes256-cbcaes256-ctr |
| HMAC | hmac-sha2-256hmac-sha2-512 |
| Kulcscsere | diffie-hellman-group14-sha256diffie-hellman-group16-sha512diffie-hellman-group-exchange-sha256ecdh-sha2-nistp256ecdh-sha2-nistp384ecdh-sha2-nistp521 |
| Hosztkulcs | ecdsa-sha2-nistp256ecdsa-sha2-nistp384ecdsa-sha2-nistp521rsa-sha2-512rsa-sha2-256 |
Az SSH-kiszolgáló konfigurálása
Először is, egy kis háttér. A Visual Studióban nem választhatja ki a használni kívánt SSH-algoritmust. Ehelyett az algoritmus az SSH-kiszolgálóval folytatott kezdeti kézfogás során lesz meghatározva. Minden oldal (ügyfél és kiszolgáló) felsorolja az általa támogatott algoritmusokat, majd kiválasztja a mindkettőre jellemző első algoritmust. A kapcsolat akkor sikeres, ha legalább egy algoritmus közös a Visual Studio és a kiszolgáló között a titkosításhoz, a HMAC-hoz, a kulcscseréhez stb.
Az Open SSH konfigurációs fájl (sshd_config) nem konfigurálja alapértelmezés szerint a használni kívánt algoritmust. Az SSH-kiszolgálónak biztonságos alapértelmezett értékeket kell használnia, ha nincsenek megadva algoritmusok. Ezek az alapértelmezett értékek az SSH-kiszolgáló verziójától és gyártójától függnek. Ha a Visual Studio nem támogatja ezeket az alapértelmezett beállításokat, valószínűleg a következőhöz hasonló hibaüzenet jelenik meg: Nem sikerült csatlakozni a távoli rendszerhez. Nem található gyakori ügyfél–kiszolgáló HMAC algoritmus. A hiba akkor is megjelenhet, ha az SSH-kiszolgáló olyan algoritmusok használatára van konfigurálva, amelyeket a Visual Studio nem támogat.
A legtöbb modern Linux-disztribúció alapértelmezett SSH-kiszolgálójának működnie kell a Visual Studióval. Előfordulhat azonban, hogy egy régebbi SSH-kiszolgálót futtat, amely régebbi, nem biztonságos algoritmusok használatára van konfigurálva. Az alábbi példa bemutatja, hogyan frissíthet biztonságosabb verziókra.
Ebben a példában az SSH-kiszolgáló a nem biztonságos hmac-sha1 algoritmust használja, amelyet a Visual Studio 16.9 nem támogat. Ha az SSH-kiszolgáló OpenSSH-t használ, szerkesztheti a fájlt a /etc/ssh/sshd_config biztonságosabb algoritmusok engedélyezéséhez. Más SSH-kiszolgálók esetén tekintse meg a kiszolgáló konfigurálására vonatkozó dokumentációt.
Először ellenőrizze, hogy a kiszolgáló által használt algoritmusok közé tartoznak-e a Visual Studio által támogatott algoritmusok. Futtassa a következő parancsot a távoli gépen a kiszolgáló által támogatott algoritmusok listázásához:
ssh -Q cipher; ssh -Q mac; ssh -Q kex; ssh -Q key
A parancs a következő kimenetet hozza létre:
3des-cbc
aes128-cbc
aes192-cbc
aes256-cbc
...
ecdsa-sha2-nistp521-cert-v01@openssh.com
sk-ecdsa-sha2-nistp256-cert-v01@openssh.com
A kimenet felsorolja az SSH-kiszolgáló által támogatott összes titkosítási, HMAC-, kulcscsere- és gazdakulcs-algoritmust. Ha a lista nem tartalmazza a Visual Studio által támogatott algoritmusokat, a folytatás előtt frissítse az SSH-kiszolgálót.
A Visual Studio által támogatott algoritmusokat a távoli gépen /etc/ssh/sshd_config szerkesztésével engedélyezheti. Az alábbi példák bemutatják, hogyan adhat hozzá különböző típusú algoritmusokat a konfigurációs fájlhoz.
Ezeket a példákat bárhol hozzá lehet adni a /etc/ssh/sshd_config-ban. Győződjön meg arról, hogy külön sorokon vannak.
A fájl szerkesztése után indítsa újra az SSH-kiszolgálót (sudo service ssh restart az Ubuntu-on), és próbáljon meg újra csatlakozni a Visual Studióból.
Rejtjel példa
Hozzáadás: Ciphers <algorithms to enable>
Például: Ciphers aes128-cbc,aes256-cbc
Példa HMAC-ra
Hozzáadás: MACs <algorithms to enable>
Például: MACs hmac-sha2-256,hmac-sha2-512
Példa kulcscserére
Hozzáadás: KexAlgorithms <algorithms to enable>
Például: KexAlgorithms ecdh-sha2-nistp256,ecdh-sha2-nistp384
Példa hosztkulcsra
Hozzáadás: HostKeyAlgorithms <algorithms to enable>
Például: HostKeyAlgorithms ecdsa-sha2-nistp256,ecdsa-sha2-nistp384
Távoli kapcsolatok naplózása
Engedélyezheti a naplózást a kapcsolati problémák elhárításához. A menüsávon válassza az Eszközök > Beállításoklehetőséget. A Beállítások párbeszédpanelen válassza ki a platformfüggetlen > naplózási lehetőséget.
A lehetőségek platformfüggetlen > Connection Manager > naplózására használhatók. A naplózás engedélyezése be van jelölve, a fájlba való bejelentkezés be van jelölve, a naplófájl könyvtára be van állítva a dokumentumok mappájába, és a kimeneti ablakban a "Platformfüggetlen naplózás" panelre jelentkezik be.
A naplók tartalmazzák a kapcsolatokat, a távoli gépre küldött összes parancsot (a szövegüket, a kilépési kódot és a végrehajtási időt), valamint a Visual Studióból a rendszerhéjba küldött összes kimenetet. A naplózás minden platformfüggetlen CMake-projekthez vagy MSBuild-alapú Linux-projekthez használható a Visual Studióban.
Konfigurálhatja a kimenetet úgy, hogy egy fájlhoz vagy a platformfüggetlen naplózási panelre lépjen a Kimenet ablakban. MSBuild-alapú Linux-projektek esetén a távoli gépre küldött MSBuild parancsok nem lesznek átirányítva a kimeneti ablakba, mert a rendszer folyamaton kívül bocsátja ki őket. Ehelyett a rendszer msbuild_ előtaggal naplózza őket egy fájlba.
Parancssori segédprogram a Connection Managerhez
Visual Studio 2019 16.5-ös vagy újabb verziójú: a ConnectionManager.exe parancssori segédprogram a Visual Studión kívüli távoli fejlesztési kapcsolatok kezelésére. Olyan feladatokhoz hasznos, mint egy új fejlesztőgép kiépítése. Vagy használhatja a Visual Studiót a folyamatos integrációhoz. Példák és a ConnectionManager parancs teljes hivatkozása megtalálható itt: ConnectionManager hivatkozás.
TCP-porttovábbítás
Az rsync parancsot MSBuild-alapú Linux-projektek és CMake-projektek is használják a távoli rendszerről a fejlécek Windows rendszerre való másolásához, hogy használhatóak legyenek az IntelliSense-ben. Ha nem tudja engedélyezni a TCP-porttovábbítást, tiltsa le a távoli fejlécek automatikus letöltését. Letiltásához használja Eszközök > Beállítások > Platformközi > Kapcsolatkezelő > Távoli fejlécek IntelliSense Manager. Ha a távoli rendszer nem engedélyezi a TCP-porttovábbítást, ez a hiba akkor jelenik meg, amikor megkezdődik az IntelliSense távoli fejléceinek letöltése:
rsync-t a Visual Studio CMake támogatásában is használják arra, hogy a forrásfájlokat a távoli rendszerre másolják. Ha nem tudja engedélyezni a TCP-porttovábbítást, használhatja a sftp távoli másolási forrásként.
sftp gyakran lassabb, mint rsync, de nem függ a TCP-port továbbításától. A távoli másolási források metódusát a remoteCopySourcesMethod tulajdonságával kezelheti. Ha a TCP-porttovábbítás le van tiltva a távoli rendszeren, hiba jelenik meg a CMake kimeneti ablakban, amikor először hívja meg rsync.
A kimeneti ablak a következő üzeneteket tartalmazza: Ellenőrizze, hogy a TCP-továbbítás engedélyezve van-e a kiszolgálón, rsync: nem jelenik meg a kiszolgáló üdvözlése, rsync hiba: hiba az ügyfél-kiszolgáló protokoll indításakor (5-ös kód) a main.c(1675) [sender=3.1.3] címen, az SSH-csatorna nem nyitható meg.
gdbserver használható beágyazott eszközökön végzett hibakereséshez. Ha nem tudja engedélyezni a TCP-portok továbbítását, akkor minden távoli hibakeresési forgatókönyvhöz gdb kell használnia. A gdb alapértelmezés szerint a távoli rendszeren lévő projektek hibakeresésekor használatos.
A Visual Studio Linux-támogatása függ a TCP-portok továbbításától. Ha a TCP-porttovábbítás le van tiltva a távoli rendszeren, az mind a rsync-ra, mind a gdbserver-re hatással van. Ha ez a függőség hatással van Önre, szavazzon erre a javaslatjegyre a fejlesztői közösségen.
Csatlakozás a WSL-hez
A Visual Studio 2017-ben ugyanezekkel a lépésekkel csatlakozhat a Linux windowsos alrendszeréhez (WSL), mint egy távoli Linux-géphez. Használja localhost a hosztnév.
A Visual Studio 2019 16.1-es verziójától kezdve a Visual Studio natív támogatást nyújt a C++ és a Windows-alrendszer linuxos (WSL). Ez azt jelenti, hogy közvetlenül a helyi WSL-telepítésen hozhat létre és végezhet hibakeresést. Többé nem kell távoli kapcsolatot hozzáadnia vagy SSH-t konfigurálnia. A WSL telepítésének részleteit itt találja.
Ha a WSL-telepítést úgy szeretné konfigurálni, hogy működjön a Visual Studióval, a következő eszközökre van szüksége: gcc vagy clang, gdb, make, ninja-build (csak a Visual Studio 2019 16.6-os vagy újabb verzióját használó CMake-projektekhez szükséges), rsyncés zip. A apt használó disztribúciókra a következő paranccsal telepítheti őket, amely a g++ fordítót is telepíti:
sudo apt install g++ gdb make ninja-build rsync zip
WSL-localhost kapcsolati problémák megoldása
A WSL-hez való localhost csatlakozáskor ütközés léphet fel a Windows kliens ssh 22-es portjával. A WSL-ben módosítsa a portot, amelyet a ssh a kérések fogadására vár, 23-ra a /etc/ssh/sshd_config-ben.
Port 23
Ha jelszóval csatlakozik, győződjön meg arról, hogy a következők beállításra kerültek a /etc/ssh/sshd_config-ban:
# To disable tunneled clear text passwords, change to no here!
PasswordAuthentication yes
A módosítások elvégzése után indítsa újra az SSH-kiszolgálót (sudo service ssh restart az Ubuntu-on).
Ezután próbálkozzon a localhost kapcsolathoz való csatlakozással újra a 23-as port használatával.
További információ: Linux számítási feladatok letöltése, telepítése és beállítása.
Az MSBuild-projekt WSL-hez való konfigurálásához lásd: Linux-projekt konfigurálása. A WSL-hez készült CMake-projekt konfigurálásához lásd: Linux CMake-projekt konfigurálása. Ha lépésenkénti útmutatást szeretne követni egy egyszerű konzolalkalmazás WSL-vel való létrehozásához, tekintse meg ezt a bevezető blogbejegyzést C++-ról a Visual Studio 2019-zel és a Windows Subsystem for Linux (WSL).