Това ръководство ще ви покаже как да направите защитена връзка с вашия отдалечен MySQL или MariaDB сървър от вашия локален компютър, като използвате SSH тунел . Това е полезно, ако искате да използвате административни инструменти на вашия локален компютър, за да работите на вашия сървър.
SSH тунелът е криптиран тунел, направен чрез връзка по SSH протокол. Можете да използвате SSH тунел за отдалечена комуникация с базата данни MySQL. След като следвате тези инструкции, ще можете да се свържете с localhost
на вашата работна станция, като използвате любимия ви инструмент за управление на MySQL. Връзката ще бъде сигурно препратена към вашия Linode през интернет.
Забележка MariaDB е разклонение на MySQL и се счита за заместител на adrop-in. Въпреки че това ръководство се отнася до MySQL, то важи в еднаква степен и за MariaDB.
Предварителни условия
- MySQL е инсталиран.
- MySQL е конфигуриран да слуша на
localhost
(127.0.0.1). Това е активирано по подразбиране.
Как да получите достъп до MySQL отдалечен чрез създаване на SSH тунел с PuTTY
Този раздел ще ви покаже как да създадете SSH тунел към MySQL на Windows, като използвате инструмента PuTTY.
Настройка на тунела
Първо, трябва да установите основна връзка с вашия Linode:
-
Изтеглете PuTTY.
-
Запазете PuTTY на вашия работен плот.
-
Щракнете двукратно върху файла PuTTY, за да започнете - няма нужда от инсталиране. Ще видите следния прозорец:
-
Въведете името на хоста или IP адреса на вашия Linode в Име на хост (или IP адрес) поле.
-
В лявото меню отидете на Връзка -> SSH -> Тунели .
-
В Изходния порт поле, въведете
3306
. -
В Дестинация поле, въведете
127.0.0.1:3306
. Вижте окончателната конфигурация по-долу: -
Кликнете върху Отваряне за да стартирате SSH сесията.
-
Ако не сте влизали в тази система с PuTTY преди, ще получите предупреждение, подобно на следното. Уверете се, че този сървър е този, с който искате да се свържете, след което щракнете върху Да :
Забележка
Това предупреждение се появява, защото PuTTY иска да проверите дали сървърът, в който влизате, е този, който казва. Малко вероятно е, но е възможно някой да подслушва връзката ви и да се представя за вашия Linode. За да потвърдите сървъра, сравнете отпечатъка на ключа, показан в предупреждението за PuTTY - низът от цифри и букви, започващи с ssh-rsa на изображението по-горе - с отпечатъка на публичния ключ на вашия Linode. За да получите пръстовия отпечатък на вашия Linode, влезте във вашия Linode чрез конзолата Lish (вижте Конзолата раздел в Linode Manager) и изпълнение на следната команда:
ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key.pub
Ключовите пръстови отпечатъци трябва да съвпадат. След като щракнете върху Да , няма да получавате допълнителни предупреждения, освен ако ключът, представен на PuTTY, не се промени по някаква причина; обикновено това трябва да се случи само ако преинсталирате операционната система на отдалечения сървър. Ако получите това предупреждение отново за същия Linode, след като ключът вече е кеширан, не трябва да се доверявате на връзката и да разследвате нещата допълнително.
-
Насочете вашия локален MySQL клиент към
localhost:3306
. Вашата връзка с отдалечения MySQL сървър ще бъде криптирана чрез SSH, което ви позволява да осъществявате достъп до вашите бази данни, без да изпълнявате MySQL на публичен IP.
Създайте SSH тунел на Mac OS X или Linux
Този раздел ще ви покаже как да създадете SSH тунел към MySQL на Mac OS X или Linux.
-
Инсталирайте MySQL клиент. Инсталирането на MySQL сървъра идва предварително опакован с инсталация на клиента. За да инсталирате само клиента:
MacOS
brew install --cask mysql-shell
Ubuntu/Debian
sudo apt install mysql-client
-
Отворете командния ред и изпълнете следната команда, за да отворите SSH тунела.
ssh [email protected] -L 3306:127.0.0.1:3306 -N
Заменете <[email protected]> с вашето SSH потребителско име и името на хоста или IP адреса на вашия сървър. Дългият низ от числа в командата изброява локалния IP, локалния порт, отдалечения IP и отдалечения порт, разделени с двоеточия (: ).
-L
- свързва локален порт към отдалечения хост пост.-N
- означава пренасочване на портове.Забележка
Ако вече използвате локален MySQL сървър на вашата работна станция, използвайте различен локален порт (3307 е често срещан избор). Новата ви команда ще изглежда така:
ssh [email protected] -L 3307:127.0.0.1:3306 -N
-
Отворете нов прозорец на терминала. Насочете вашия локален MySQL клиент към
127.0.0.1:3306
с потребителското име и паролата на MySQL сървъра.MacOS
mysqlsh --host=127.0.0.1 --port=3306 -u user -p
Ubuntu/Debian
mysql --host=127.0.0.1 --port=3306 -u user -p
Вашата връзка с отдалечения MySQL сървър ще бъде криптирана чрез SSH, което ви позволява да осъществявате достъп до вашите бази данни, без да изпълнявате MySQL на публичен IP.
-
Когато сте готови да затворите връзката, пуснете CTRL-C команда или затворете прозореца на командния ред. Това ще затвори SSH тунела.
Постоянни SSH връзки
Ако имате нужда от постоянен SSH тунел, помислете за използването на autossh. autossh стартира и следи SSH връзка и я рестартира, ако е необходимо.
Повече информация
Може да пожелаете да се консултирате със следните ресурси за допълнителна информация по тази тема. Въпреки че те са предоставени с надеждата, че ще бъдат полезни, моля, имайте предвид, че не можем да гарантираме за точността или навременността на външно хостваните материали.
- Използване на PuTTY
- Документация на MySQL
- Документация на MariaDB
- autossh