A MySQL vagy MariaDB szolgáltatáshoz a 3306-os porton keresztül érkező kapcsolatok alapértelmezés szerint nem titkosítottak, így a jelszó és az adatok is lehallgathatók lennének. Ezért cPanel szervereinken az adatbázisok kívülről közvetlenül nem érhetők el, csak titkosított SSH tunnelen keresztül. A cPanel Remote Database Access (Távoli adatbázis-hozzáférés) felületén megadott IP-címek emiatt nem nyitnak közvetlen elérést.
Ez egy haladó témakör, és feltételezi, hogy van némi tapasztalata az SSH-val és az SQL kliensprogramokkal.
Előfeltételek
- SSH hozzáférés: a cPanel tárhelycsomagok közül a cP Premium, a cP Pro és a cP Pro 100 csomagban érhető el.
- SSH kulcs: a biztonságos belépéshez használjon SSH-kulcsot; a publikus kulcsnak feltöltve és aktiválva kell lennie a tárhelyen.
- Adatbázis és felhasználó: a felhasználót hozzá kell rendelni az adatbázishoz a megfelelő jogosultságokkal; erről a MySQL adatbázisok és felhasználók létrehozásáról szóló cikk szól. Az adatbázis és a felhasználó neve is a cPanel felhasználónévvel kezdődik (például
felhasznalo_webshop).
Linux, macOS, WSL és Windows PowerShell
Nyisson egy terminált, majd az alábbi paranccsal építse fel a tunnelt a cPanel tárhelyhez:
ssh -p 4231 -N -L 3333:localhost:3306 user@server
Ahol:
-p 4231: az SSH szerver portja, ahová csatlakozni kell.-N: a kliens ne indítson parancsot vagy shellt, csak a tunnelt tartsa fenn.-L 3333:localhost:3306: a saját gép 3333-as portjára érkező forgalmat a szerver felől nézve alocalhost:3306címre továbbítja (a localhost itt a távoli szervert jelenti).user@server: a cPanel felhasználónév és a szerver neve.
A Windows 10 és 11 beépített OpenSSH kliense ugyanezt a parancsot elfogadja PowerShellben. Ha a kapcsolat tétlenség miatt megszakad, adja hozzá a -o ServerAliveInterval=60 kapcsolót.
Windows, PuTTY
- A PuTTY-ban adja meg a szerver nevét és az SSH portot, a Connection > SSH > Auth > Credentials részben pedig a PPK formátumú titkos kulcsot.
- A Connection > SSH > Tunnels oldalon a Source port mezőbe írja be:
3333, a Destination mezőbe:localhost:3306, majd kattintson az Add gombra. - Csatlakozzon, és amíg az ablak nyitva van, a tunnel él.
Az SQL kliens beállítása
Amíg a tunnel él, az SQL kliensben (például HeidiSQL, DBeaver, MySQL Workbench) a következőket adja meg:
- Kiszolgáló:
127.0.0.1(nelocalhost-ot írjon, mert egyes kliensek azt helyi socketként értelmezik, és nem a tunnelt használják), - Port:
3333, - Felhasználó és jelszó: az adatbázis-felhasználó teljes neve és jelszava.
A felsorolt programok saját SSH tunnel funkcióval is rendelkeznek (HeidiSQL: „MySQL (SSH tunnel)”, MySQL Workbench: „Standard TCP/IP over SSH”, DBeaver: SSH fül). Ilyenkor külön parancs nem kell: az SSH résznél a szerver nevét, a portot, a cPanel felhasználónevet és a kulcsot, az adatbázis résznél a 127.0.0.1 címet és a 3306-os portot adja meg.
Gyakori hibák
- Permission denied (publickey): a kulcs nincs engedélyezve a cPanel SSH Access felületén, vagy nem a megfelelő titkos kulcsot használja.
- Address already in use: a gépén a 3333-as port foglalt; válasszon másikat (például
3334:localhost:3306). - Access denied for user: hiányzik a felhasználónév elejéről a cPanel előtag, vagy a felhasználó nincs hozzárendelve az adatbázishoz.