Távoli rendszerek elérése
Fejlesztés során többször előfordulhat, hogy valamilyen távoli környezethez akarunk hozzáférni, esetleg annak fájlrendszerét elérni. Ilyen lehet mind a GitLab és GitHub elérése, mind a különböző AWS példányokhoz való csatlakozás. Ezen oldal az ilyen hozzáférések alapvető beállítását mutatja be.
SSH konfiguráció
Távoli környezetek biztonságos elérésére a leggyakoribb mód az SSH (Secure SHell). Az ennek használatára alkalmas ssh parancs a legtöbb rendszeren alapból megtalálható.
Ahhoz, hogy SSH segítségével csatlakozni tudjunk egy szerverhez szükségünk lesz egy SSH kulcspárra, mely egy privát és egy publikus kulcsból áll. A publikus kulcsot megosztjuk a szerverrel, majd amikor csatlakozni akarunk, a privát kulccsal azonosítjuk, hogy valóban a miénk a publikus kulcs.
Kulcspár generálása
SSH kulcspárt generálni a következő paranccsal tudunk:
A parancs kiadása után a újabb bemenetet vár a terminál, itt a kulcspár mentési helyét kell megadnunk, amennyiben a zárójelben látható alapértelmezés nem megfelelő:
Generating public/private ed25519 key pair.
Enter file in which to save the key (/home/user/.ssh/id_ed25519):
Újabb Enter nyomása után a kulcspár megtalálható a megfelelő helyen. A privát kulcs kiterjesztés nélküli, míg a publikus kulcs .pub kiterjesztéssel van ellátva.
Fontos!
A privát kulcsot soha NE adjuk meg sehol.
Más típusú kulcspárok generálása
Az elliptikus görbéken alapuló ed25519 eljárás újabb, és bár igen széles körben támogatott, nem feltétlen elérhető mindenhol. Ilyenkor a rendszer valószínűleg RSA kulcspár generálására kér, amit a parancs következő módosításával tehetünk meg:
Itt -b 2048 azt mondja meg, hogy 2048 bites kulcsot készüljön. Hogy pontosan milyen kulcspár szükséges, legegyszerűbb ha megnézzük a megfelelő rendszer dokumentációjában. Az ssh-keygen parancs egyéb beállításait itt találjuk.
Csatlakozás szerverhez
Miután legeneráltuk a kulcspárunkat, és a távoli rendszernek megadtuk a publikus kulcsunkat, a következő módon tudunk csatlakozni ahhoz:
Itt a domain a szerver elérhetőségét takarja (pl. 8.8.8.8, gitlab.com), a felhasználónevet pedig a rendszerre specifikusan kell megszereznünk. Az ssh parancs számos további beállítást enged meg (pl. port forwarding), ezekről itt lehet tájékozódni.
Adott címre intézett SSH parancs először lehet, figyelmeztet, hogy ismeretlen host-hoz próbálunk csatlakozni. Amennyiben tudjuk, hogy jó helyre csatlakozunk, nyugodtan figyelmen kívül hagyhatjuk ezt, és megengedhetjük, hogy hozzávegye az ismert host-ok listájához.
Konfigurációs fájl
Az ssh parancs és a legtöbb ráépülő eszköz támogatja a konfigurációs fájlt. Ennek helye {felhasználói mappa}/.ssh/config (kiterjesztés nélkül). A fájlban definiálhatunk előre SSH profilokat, így elkerülve, hogy folyamatosan a parancssorban, a megfelelő flag-ekkel kelljen magunkat azonosítani.
A fájl egy bejegyzésének formája a következő:
Amennyiben a config fájlba ezt megadjuk, a fenti parancs helyett elegendő az ssh <profil> parancsot kiadnunk. A konfigurációs fájl összes beállítását itt találjuk. Ezek közül általánosságban érdemes az AddKeysToAgent paramétert yes-re állítani minden profil esetén.
Kommentek
A config fájlba tehetünk kommenteket a # szimbólum segítségével.
Felhasználó felülírása parancssorban
A parancssori bemeneteknek nagyobb a precedenciája, mint a config fájlban találhatóknak. Ennek egy különleges szintaxisú esete a felhasználó. Amennyiben adott profillal, de más felhasználóhoz akarunk csatlakozni (vagy akár nincs is a profilban definiálva felhasználó), az a következő módon tehetjük meg:
Példa: egy GitLab profil
A következő módon konfigurálható például a GitLab SSH hozzáférése:
# Intuitech GitLab account
Host gitlab.com
HostName gitlab.com
IdentityFile ~\.ssh\id_rsa
AddKeysToAgent yes
Ekkor kiadva a git clone git@gitlab.com:<repo útvonal> parancsot, automatikusan használni fogja a git az SSH kulcsunkat a jogosultság ellenőrzéséhez.
A távoli környezeteink és a DevEnvPortal
A Guru esetén (de természetesen nem csak itt) számos AWS környezet áll rendelkezésünkre (bővebben itt). Ezek kezelése, információik lekérése a DevEnvPortal felületen lehetséges. Itt többek között az alábbi műveleteket végezhetjük:
A projekthez tartozó AWS környezetek megtekintése
Az oldalra bejelentkezve az első, amit látunk, azok a hozzánk rendelt AWS környezetek

Itt megtekinthetjük többek között az AWS egységek példányneveit, az indítás és leállítás ütemezését, illetve a környezetek jelenlegi státszát is, ahol amellett, hogy látjuk, hogy futnak-e, manuálisan el is indíthatjuk vagy leállíthatjuk őket. (Ezeket az opciókat oldalra görgetve találjuk, amennyiben nem látszanak automatikusan.)
Profil információk megtekintése
Az oldalon a jobb felső sarokban a nevünkre kattintva, majd a lenyíló menüben a „Profil“ menüpontra nyomva a profilunk oldalára jutunk. Itt megtekinthetjük a szervezeti email címünket, SSH jelszavunkat (ezt a regisztráció során adtuk meg, és az környezeteken ez a profilunk jelszava), SSH felhasználónevünket és publikus SSH kulcsunkat.
Regisztráció és SSH hozzáférések beállítása
Az AWS környezeteinket elérhetjük SSH-n keresztül. Erre bármikor szükség lehet, hiszen a szerveren futó folyamatokat így tudjuk vizsgálni, és például a távoli környezetek adatbázisaihoz való hozzáféréshez is elengedhetetlen.
A környezetekhez való SSH hozzáférést a következő módon tudjuk beállítani:
-
Jelentkezzünk be a https://devportal.internal.intuitech.studio/ oldalon. Amennyiben az nem engedi a bejelentkezést, forduljunk a PA-hoz segítségért.
-
Generáljunk egy SSH kulcspárt a fentebb leírt módon.
-
Bejelentkezés után egy ablak fogad minket, mely egy SSH publikus kulcsot vár, illetve egy jelszót. Töltsük fel a generált SSH kulcspár publikus részét, illetve adjunk meg egy jelszót. Ez a jelszó lesz a szervereken létrehozott profilunk jelszava. A felhasználónév így áll elő, kisbetűsen, ékezetek nélkül:
{keresztnév első két betűje}{vezetéknév}
Ezzel sikeresen regisztráltunk a DevEnvPortal felületére. Ha minden jól van beállítva, ezen a ponton látni fogjuk a Guru AWS példányait (jelenleg Dev és UAT-like). Amennyiben nem látjuk őket, forduljunk a PA-hoz segítségért.

Végül ellenőrizzük az SSH hozzáférést. A privát kulcs az, amelynek publikus párját feltöltöttük, míg felhasználónév a (3) lépésben leírt. A domain-eket a környezetek összefoglaló táblázatában találjuk.
SSH elérés megadása a config-ban
Természetesen ezeket a környezeteket is hozzáadhatjuk az SSH konfigurációs fájlhoz. Ez például a develop környezet esetében így nézhet ki
# Guru dev AWS
Host devva
HostName granit-virtual-assistant.develop.dev.gbsolutions.io
IdentityFile ~\.ssh\id_aws
User <felhasználónév>
AddKeysToAgent yes
Ekkor az ssh devva parancsot kiadva azonnal a develop AWS termináljába kerülünk.