Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Zdalny dostęp do serwera MySQL przez tunel SSH

Możemy bezpiecznie uzyskać dostęp do MySQL na zdalnym systemie, łącząc MySQL przez tunel SSH. Ten samouczek zawiera kroki wymagane do zdalnego połączenia się z serwerem MySQL przez tunel SSH przy użyciu Putty w systemie Windows i SSH w systemach Linux. Pokazuje, jak przekierować lokalny port MySQL, tj. 3306 na zdalny port MySQL, tj. 3306 przez port SSH 22 zdalnego systemu. Zapewnia to bezpieczną komunikację ze zdalnym serwerem przez port 22, łącząc lokalny port 3306 z portem 3306 na zdalnym serwerze.

Wymagania wstępne

Serwer zdalny z zainstalowanym serwerem MySQL. Możesz śledzić Jak zainstalować MySQL 8 na Ubuntu 20.04 LTS.

Upewnij się również, że port 22 jest otwarty, a port 3306 jest zablokowany przez zaporę w systemie zdalnym z serwerem MySQL. W tym samouczku założono również, że serwer MySQL nie działa w systemie lokalnym. Gwarantuje to, że port 3306 w systemie lokalnym jest wolny do przekierowania portów.

Potrzebujemy również dostępu SSH do systemu, na którym jest zainstalowany i uruchomiony serwer MySQL. Możemy użyć nazwy użytkownika i hasła SSH lub nazwa użytkownika i klucz SSH aby połączyć się ze zdalnym systemem.

Zainstaluj Putty w systemie Windows 10

Możemy użyć Putty w systemach Windows, aby uzyskać dostęp do serwera MySQL zainstalowanego na serwerze zdalnym. Jeśli używasz systemu opartego na Linuksie, możesz przejść do sekcji SSH.

Otwórz oficjalną stronę pobierania Putty, aby pobrać instalator MSI, jak zaznaczono na ryc. 1.

Rys. 1

Możemy również użyć pliku wykonywalnego Putty bez jego instalowania. Przewiń stronę pobierania, aby pobrać plik wykonywalny.

Teraz uruchom Putty. Domyślne opcje Putty powinny być podobne do rys. 2.

Rys. 2

Bezpieczne połączenie z MySQL za pomocą Putty

Ta sekcja zawiera kroki, jak używać Putty do bezpiecznego łączenia się z MySQL przez tunel SSH z systemu zdalnego. Teraz wypełnij dane zdalnego hosta, jak pokazano na rys. 3.

Rys. 3

Ponadto kliknij Połączenie -> SSH -> Tunele jak zaznaczono na ryc. 3. Teraz wypełnij szczegóły przekierowania portu SSH, jak pokazano na ryc. 4. Port źródłowy powinien być ustawiony na 3306 a Miejsce docelowe powinno być ustawione na 127.0.0.1:3306 .

Rys. 4

Kliknij Przycisk Dodaj po wypełnieniu portu źródłowego i docelowego. Zaktualizuje przekierowane porty jak pokazano na ryc. 4. Ponadto kliknij opcję Auth i wybierz klucz SSH, jak pokazano na ryc. 5. Upewnij się, że wygenerowałeś klucz prywatny za pomocą Puttygen.

Rys. 5

Teraz kliknij Przycisk Otwórz aby otworzyć połączenie. Po raz pierwszy wyświetli się alert bezpieczeństwa, jak pokazano na rys. 6.

Rys. 6

Kliknij Przycisk Tak zaakceptować połączenie. Poprosi o hasło w przypadku, gdy ustawiłeś podczas generowania klucza prywatnego. Po pomyślnym nawiązaniu połączenia pokażą szczegóły zdalnego systemu, jak pokazano na rys. 7.

Rys. 7

Oprócz połączenia przez SSH, przekierował również lokalny port 3306 na port 3306 na zdalnym serwerze. Nie zamykaj Putty, ponieważ utrzymuje otwarty tunel SSH do zdalnego serwera. Teraz uruchom dowolnego klienta MySQL i spróbuj połączyć się ze zdalnym serwerem MySQL. Użyłem MySQL Workbench do celów demonstracyjnych. Ekran główny Workbencha powinien być podobny do Rys. 8. Możesz również skorzystać z opcji Używanie Workbencha, aby połączyć się ze zdalnym serwerem MySQL przez tunel SSH.

Rys. 8

Teraz kliknij Ikonę Plus aby utworzyć nowe Połączenie lokalne jak zaznaczono na ryc. 8. Wyświetli się opcje dodawania połączenia, jak pokazano na ryc. 9.

Rys. 9

Podaj nazwę połączenia i zachowaj nazwę hosta jako 127.0.0.1, a port jako 3306, jak pokazano na rys. 9. Teraz kliknij Testuj połączenie, aby przetestować połączenie ze zdalnym serwerem MySQL przez tunel SSH. Zapyta się o hasło, jak pokazano na rys. 10, jeśli nie zapisałeś go w Krypcie.

Rys. 10

Teraz wpisz hasło i kliknij Przycisk OK aby przetestować połączenie. Powinien pokazać komunikat o powodzeniu połączenia, jak pokazano na rys. 11.

Rys. 11

Teraz kliknij Przycisk OK aby zamknąć komunikat o połączeniu i ponownie kliknij Przycisk OK aby zamknąć kreatora połączenia. Doda połączenie do biblioteki połączeń, jak pokazano na rys. 12.

Rys. 12

Teraz kliknij nowo dodane połączenie. Powinien połączyć się ze zdalnym serwerem i wyświetlić bazy danych zdalnego serwera MySQL, jak pokazano na rys. 13.

Rys. 13

Teraz możemy pracować na zdalnym serwerze MySQL przy użyciu Workbencha w systemie lokalnym. Zamknij także Workbench i Putty, aby zakończyć połączenie po zakończeniu pracy na zdalnym serwerze MySQL.

Bezpieczne połączenie z MySQL za pomocą SSH

Możemy połączyć się ze zdalnym serwerem MySQL, przekazując lokalny port 3306 do zdalnego portu 3306 za pomocą polecenia SSH, jak pokazano poniżej. Podobnie jak w poprzedniej sekcji, upewnij się, że lokalny port 3306 jest wolny.

Notatki :Poniższe polecenia zostały przetestowane na Ubuntu Desktop. Kroki i polecenia powinny być podobne w innych systemach Linux.

# Shutdown local MySQL - Else use a different local port
sudo service mysql stop

# Install MySQL Client - If required
sudo apt install mysql-client

# Port Forwarding - Command
ssh -N -L 3306:127.0.0.1:3306 [USER]@[SERVER_IP]
# OR
ssh -N -L 3306:127.0.0.1:3306 -i [SSH Key] [USER]@[SERVER_IP]

# Port Forwarding - Example
ssh -N -L 3306:127.0.0.1:3306 [email protected]
# OR
ssh -N -L 3306:127.0.0.1:3306 -i example.pem [email protected]

Wyżej wymienione polecenia otwierają tunel SSH i łączą port lokalny 3306 z portem zdalnym 3306. Teraz możemy połączyć się ze zdalnym serwerem MySQL za pomocą klienta MySQL. Możesz odwołać się do poprzedniej sekcji, aby użyć MySQL Workbench zainstalowanego w systemie lokalnym.

Zobacz także ilustr. 14 i ilustr. 15, aby otworzyć tunel SSH i połączyć się ze zdalnym serwerem MySQL.

Rys. 14

Rys. 15

Podsumowanie

Ten samouczek zawierał kroki wymagane do połączenia się ze zdalnym serwerem MySQL przez tunel SSH dla systemów Windows i Linux.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Rejestracja użytkownika i weryfikacja poczty e-mail PHP i MySQL

  2. Korzystanie z aplikacji klienckich MySQL

  3. Maksymalne rozmiary pamięci TINYTEXT, TEXT, MEDIUMTEXT i LONGTEXT

  4. Jak ograniczyć dostęp do portu MySQL

  5. Wstawianie obiektu Python datetime.datetime do MySQL