Mengakses mysql di belakang firewall dengan ssh port forwarding

0

Saya memiliki arsitektur yang terlihat seperti ini:

            |    - DMZ -    |
 ________   |   ________    |   _______
| CLIENT |  |  | SERVER |   |  | MYSQL |
|________|  |  |________|   |  |_______|
            |               |
            | <-FIREWALLS-> |

Saya perlu terhubung dari CLIENT (linux) ke MYSQL (layanan yang berjalan di linux). Saya tidak dapat mengakses kotak MYSQL secara langsung, tetapi saya dapat mengakses SERVER (linux). SERVER dapat mengakses MYSQL. Saya mencoba mengatur penerusan port ssh sehingga saya dapat terhubung ke proses MYSQL dari CLIENT. Saya telah mengeksekusi ini pada KLIEN:

ssh -Ngf -L 3306:MYSQL:3306 username@SERVER

Tampaknya ini berfungsi dengan baik, tetapi saya masih tidak dapat mengakses MYSQL. Saya mendapatkan kesalahan host yang tidak dikenal. Adakah ide yang saya lakukan salah?

Terima kasih sebelumnya!

Rip Leeb
sumber
Apa perintah mysql yang Anda jalankan di mesin lokal setelah mengkonfigurasi terowongan?
mikebabcock
@mikebabcock mysql --host=MYSQL --port=3306sudah cukup untuk mendapatkan kesalahan host yang tidak dikenal.
Rip Leeb
Jadi bukan penerusan port ssh yang gagal !? Lihat hasil edit jawaban saya. Silakan kirim semua input dan (kesalahan) output dalam pertanyaan Anda.
Jan
@nate bahwa perintah mysql adalah masalahnya; itu harus terhubung ke localhost (dan kecurigaan saya ketika saya mengajukan pertanyaan di tempat pertama). Saya melihat Anda sudah menyelesaikan itu di bawah sekarang.
mikebabcock

Jawaban:

2

Saya akan mengatakan bahwa SERVER tidak dapat menyelesaikan MYSQL, cobalah untuk memberikan IP dari mesin MYSQL dalam perintah Anda. Anda juga tidak perlu -gkarena mesin jarak jauh tidak akan terhubung kembali ke Anda.

ssh -Ngf -L 3306:<IP-OF-MYSQL-HERE>:3306 username@SERVER

Sunting

Jangan lupa bahwa Anda harus terhubung ke localhost:3306saat port forward sudah ada, karena pos lokal Anda diteruskan ke mesin MYSQL Anda.

Jan
sumber
1
Jika Anda menambahkan -v ke perintah, itu juga akan menunjukkan pembentukan terowongan (atau gagal) di jendela terminal.
mikebabcock
@ Jan Saya tahu bahwa SERVER dapat menyelesaikan MYSQL karena saya dapat masuk ke SERVER dan terhubung ke MYSQL. Apakah ssh memengaruhi itu?
Rip Leeb
@ Jan @ mikebabcock Saya menghapus -g dan menambahkan -v dan memang menemukan kesalahan di sana. Saya menambahkan -4 dan sekarang terowongan tampaknya didirikan. Misalnya: debug1: Local connections to LOCALHOST:3306 forwarded to remote address MYSQL:3306dan `Penerusan penerusan lokal pada 127.0.0.1 port 3306.` Namun, saya masih tidak dapat menyelesaikan MYSQL dari CLIENT.
Rip Leeb
Ya! Mengubah host menjadi 127.0.0.1 berhasil! Terima kasih! Localhost tidak berfungsi karena suatu alasan.
Rip Leeb