A jelenlegi munkahelyemhez való csatlakozáskor megkértek, hogy hozzak létre egy új GitHub-fiókot, mielőtt a vállalat GitHub-szervezetének tagja lehetek, és így hozzáférhetek az összes privát projekt-tárhoz.
Amíg a munkahelyi laptopot a szekrényemben hagytam, de még mindig el kellett végeznem valamit, addig nem éreztem szükségét, hogy mindkét GitHub-fiókomat a személyes laptopomon kezeljem (kinek van szüksége a munka és a magánélet egyensúlyára?)
A dolgok bonyolítása érdekében a projekt, amelyen dolgozom, a package.json
függőségi blokkjában más privát tárolókra hivatkozik, és a npm install
-en kell elérnie őket, ami alapértelmezés szerint a személyes GitHub-fiókom sh-kulcsát használja.
Néhány próbálkozás és kudarc után végül így sikerült elérnem, hogy működjön:
Készíts egy új ssh-kulcsot, és add hozzá a munka GitHub-fiókhoz
$ ssh-keygen -t rsa -b 4096 -C "my_work_email@my_company.com"
Tegyük fel, hogy az új ssh-kulcs neve “work_rsa”, most másold be az újonnan létrehozott nyilvános kulcsfájl tartalmát (work_rsa.pub ebben a példában), és illessze be a work GitHub-fiók beállítási oldalára a GitHub súgóoldalán leírtak szerint.
Módosítsa az ssh konfigurációs fájlt ( ~/.ssh/config)
Nyissa meg a konfigurációs fájlt egy szövegszerkesztővel (hozza létre, ha nincs a ~/.ssh mappa még nincs), és egészítsük ki a következőkkel:
# Personal GitHub account
Host github.com
HostName github.com
User git
AddKeysToAgent yes
UseKeychain yes
IdentityFile ~/.ssh/id_rsa# Work GitHub account
Host github.com-work
HostName github.com
User git
AddKeysToAgent yes
UseKeychain yes
IdentityFile ~/.ssh/work_rsa
Klónozzuk a munkaprojekt repót (egy kicsit más címmel)
A munkaprojekt repó klónozásához az új ssh-kulcs használatával egy kicsit módosítanunk kell a repó ssh-címét. A host url-nek meg kell egyeznie az előző lépésben az ssh config fájlban definiált hostdal, nevezetesen, ahol a címben github.com
van, azt helyettesítsük github.com-work
.
Pl, a következő privát repo ssh címével, amit a GitHubról kapunk:
[email protected]:/.git
A címét így kell módosítanunk, mielőtt git clone
tudnánk git clone
:
[email protected]:/.git
$ git clone [email protected]:/.git
Módosítani a csomagot.json-t a privát repo függőségek telepítéséhez
A lokálisan klónozott projektben keressük meg a privát repo függőségeket a csomagjában.json-t, és végezd el ugyanazt a módosítást a repo címükön, mint a 3. lépésben (én nem commitolnám ezeket a módosításokat, mivel ez mindent tönkretesz a többi ember számára, akik szintén ezen a projekten dolgoznak):
"dependencies": {
"private-module": "git+ssh://[email protected]/.git
...
}
*Szükséges lehet, hogy először kézzel telepítsd az egyik privát modult a terminálban:
$ npm install git+ssh://[email protected]/
Hogy a privát repókat felismerje az ssh known_hosts
és elérhetők legyenek a projekt függőségek npm telepítése során.
Szükség lehet arra, hogy a privát repókat felismerje az ssh known_hosts
és elérje az npm a projekt függőségek telepítése során.