Можем да получим сигурен достъп до MySQL на отдалечена система, като свържем MySQL през SSH тунела. Този урок предоставя стъпките, необходими за дистанционно свързване към MySQL сървър през SSH тунел с помощта на Putty на Windows и SSH на Linux системи. Показва как да препратите локалния порт на MySQL, т.е. 3306 към отдалечения порт на MySQL, т.е. 3306 чрез SSH порт 22 на отдалечената система. Това гарантира, че комуникираме сигурно с отдалечения сървър през порт 22, като свързваме локалния порт 3306 към порт 3306 на отдалечения сървър.
Предварителни условия
Отдалечен сървър, на който е инсталиран MySQL сървър. Можете да следвате Как да инсталирате MySQL 8 на Ubuntu 20.04 LTS.
Също така се уверете, че порт 22 е отворен и порт 3306 е блокиран от защитната стена на отдалечената система с MySQL сървър. Този урок също предполага, че MySQL сървърът не работи в локалната система. Това гарантира, че портът 3306 на локалната система е свободен за пренасочване на портове.
Нуждаем се и от SSH достъп до системата, на която е инсталиран и работи MySQL сървъра. Можем да използваме SSH потребителско име и парола или SSH потребителско име и ключ за да се свържете с отдалечената система.
Инсталирайте Putty на Windows 10
Можем да използваме Putty в системите на Windows за достъп до MySQL сървъра, инсталиран на отдалечен сървър. В случай, че използвате Linux базирана система, можете да преминете към секцията SSH.
Отворете официалната страница за изтегляне на Putty, за да изтеглите инсталатора на MSI, както е подчертано на фигура 1.
Фигура 1
Можем също да използваме изпълнимия файл Putty, без да го инсталираме. Превъртете надолу страницата за изтегляне, за да изтеглите изпълнимия файл.
Сега стартирайте Putty. Опциите по подразбиране на Putty трябва да са подобни на фигура 2.
Фигура 2
Сигурна връзка с MySQL с помощта на Putty
Този раздел предоставя стъпките за използване на Putty за сигурно свързване към MySQL през SSH тунела от отдалечена система. Сега попълнете подробностите за отдалечения хост, както е показано на Фиг. 3.
Фигура 3
Също така щракнете върху Връзка -> SSH -> Тунели както е подчертано на фигура 3. Сега попълнете подробностите за пренасочване на SSH порт, както е показано на фигура 4. Изходният порт трябва да бъде настроен на 3306 и Дестинация трябва да бъде зададена на 127.0.0.1:3306 .
Фигура 4
Щракнете върху бутона за добавяне след попълване на порта източник и дестинация. Той ще актуализира Препратените портове както е показано на Фиг. 4. Също така щракнете върху опцията Auth и изберете SSH ключа, както е показано на Фиг. 5. Уверете се, че сте генерирали личния ключ с помощта на Puttygen.
Фигура 5
Сега щракнете върху бутона за отваряне за да отворите връзката. Той ще покаже сигнала за сигурност за първи път, както е показано на Фиг. 6.
Фигура 6
Щракнете върху бутона Да за да приемете връзката. Той ще поиска паролата, в случай че сте задали, докато генерирате частния ключ. При успешно свързване той ще покаже подробностите за отдалечената система, както е показано на Фиг. 7.
Фигура 7
Освен че се свързва през SSH, той също така препраща локалния порт 3306 към порта 3306 на отдалечения сървър. Не затваряйте Putty, тъй като поддържа SSH тунела отворен към отдалечения сървър. Сега стартирайте всеки MySQL клиент и опитайте да се свържете с отдалечения MySQL сървър. Използвах MySQL Workbench за демонстрационни цели. Началният екран на Workbench трябва да бъде подобен на фигура 8. Можете също да следвате Използване на Workbench за свързване към отдалечен MySQL сървър през SSH тунел.
Фигура 8
Сега кликнете върху иконата на плюс за да създадете нова локална връзка както е подчертано на фигура 8. Ще покаже опциите за добавяне на връзка, както е показано на фигура 9.
Фигура 9
Осигурете име на връзка и запазете името на хоста като 127.0.0.1 и порта като 3306, както е показано на фиг. 9. Сега щракнете върху Test Connection, за да тествате връзката с отдалечения MySQL сървър през SSH тунела. Той ще поиска парола, както е показано на фигура 10, в случай че не сте я съхранили в трезора.
Фигура 10
Сега попълнете паролата и щракнете върху бутона OK за да тествате връзката. Трябва да показва съобщение за успех при успешно свързване, както е показано на Фиг. 11.
Фигура 11
Сега щракнете върху бутона OK за да затворите съобщението за връзка и отново щракнете върху бутона OK за да затворите съветника за свързване. Той ще добави връзката към библиотеката за връзки, както е показано на Фиг. 12.
Фигура 12
Сега щракнете върху новодобавената връзка. Той трябва да се свърже с отдалечения сървър и да изброи базите данни на отдалечения MySQL сървър, както е показано на Фигура 13.
Фигура 13
Сега можем да работим на отдалечен MySQL сървър, използвайки Workbench в локалната система. Освен това затворете Workbench и Putty, за да прекратите връзката след завършване на работата на отдалечения MySQL сървър.
Сигурна връзка с MySQL чрез SSH
Можем да се свържем с отдалечения MySQL сървър, като пренасочим локалния порт 3306 към отдалечения порт 3306 с помощта на SSH командата, както е показано по-долу. Подобно на предишния раздел, уверете се, че локалният порт 3306 е свободен.
Бележки :Посочените по-долу команди са тествани на Ubuntu Desktop. Стъпките и командите трябва да са подобни на други 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]
Гореспоменатите команди отварят SSH тунела и свързват локалния порт 3306 с отдалечения порт 3306. Сега можем да се свържем с отдалечения MySQL сървър с помощта на MySQL клиента. Можете да се обърнете към предишния раздел, за да използвате MySQL Workbench, инсталиран на локалната система.
Също така вижте Фиг. 14 и Фиг. 15, за да отворите SSH тунела и да се свържете с отдалечения MySQL сървър.
Фигура 14
Фигура 15
Резюме
Този урок предоставя стъпките, необходими за свързване към отдалечения MySQL сървър през SSH тунел за Windows и Linux системи.