Fórum Root.cz

Hlavní témata => Server => Téma založeno: kvas 21. 04. 2020, 14:02:15

Název: Double SSH tunelling
Přispěvatel: kvas 21. 04. 2020, 14:02:15
Ahoj,

poradili by ste mi prosim s tymto?

mam desktop D a server S, na serveri bezi databaza nabindovana na localhost only a ja sa chcem s desktopu D pripojit na databazu na serveri S.

Robievam som to tak, ze som na serveri vytvoril lokalny tunel z localhost:3306 (mysql) na public_ip:5678 (whatever)  a potom som si vytvoril 2. tunel z desktopu (localhost:1234) na server (public_ip:5678) koli tomu aby connection do DB bolo sifrovane a nasledne sa pripojil do databazy (na 1234) z desktopu. po praci som tunel zrusil.

Je mozne takyto "dvojity SSH tunel" urobit jednorazovo (jednym prikazom/scriptom), t.j podporuje to SSH? Ak  nie, tak by mi aspon pomohlo to, ako nakonfigurovat SSH aby sa na ten serverovy port 5678 mohol pripojit iba konkretny jeden klient, teda moj desktop.

Název: Re:Double SSH tunelling
Přispěvatel: Filip Jirsák 21. 04. 2020, 14:27:35
OpenSSH příkaz ssh na to má parametr -J. Případně někteří databázoví klienti (třeba DBeaver nebo DataGrip) umí spojení k databázi tunelovat skrz SSH spojení.

Mimochodem, ve vašem případě je zbytečné vytvářet dva tunely – nemusíte dělat tunel na serveru z localhostu na veřejnou IP adresu. Normálně si v SSH udělejte tunel, který bude na desktopu naslouchat na portu 3306 a komunikaci přeposílat SSH tunelem na server na localhost:3306:

Kód: [Vybrat]
ssh -L 3306:localhost_3306 -N
Název: Re:Double SSH tunelling
Přispěvatel: kvas 21. 04. 2020, 15:26:35
skvele, nieco presne taketo som hladal - netusil som, ze ten "server only" tunel nie je nutny.

velmi pekne dakujem.
Název: Re:Double SSH tunelling
Přispěvatel: Ħαℓ₸℮ℵ ␏⫢ ⦚ » 21. 04. 2020, 16:56:37
VýživNapěchovaný článek o využití nc:
https://miloserdov.org/?p=2826
v dolní polovině se píše o příkladu s SQL (keyword 3306