У меня есть экземпляр MySQL, работающий на сервере, к которому я не могу подключиться напрямую, а только через другой сервер, поэтому мне нужно добраться до него следующим образом:
[local] --> [server1] --> [server2]
Какую команду мне следует использовать для этого? Пробовала вроде все но вроде остановилась на первом ..
Это одна из команд, которые я пробовал:
ssh -N -p 22 -c 3des myUser@1.1.1.1 -L 3306/1.1.1.1/3310 -R 3310/2.2.2.2/3306
1.1.1.1 -> server1
2.2.2.2 -> server2
заранее спасибо
Если ваш MySQL работает на server2
, можешь попробовать:
ssh -L 3306:2.2.2.2:3306 1.1.1.1
Это создаст туннель между вашим локальным портом 3306 и server2
порт 3306.
Затем вы подключаетесь к localhost
в вашем клиенте MySQL.
Давайте разберемся
-N
Я предполагаю, что вы не хотите выполнять удаленную команду, иначе вы могли бы сделать
ssh -t myUser@1.1.1.1 "ssh myUser@2.2.2.2"
затем -p 22 -c 3des
Порт и явный выбор шифра
Локальная привязка -L 3306/1.1.1.1/3310
что переводится как local-port:remote-host:remote-port
До этого момента вы подключаетесь как myUser@1.1.1.1
и привязка порта 3306 на вашем компьютере к 3310 в 1.1.1.1.
-R
делает полную противоположность -L
. Вы привязываете порт удаленно, поэтому при подключении к этому удаленному порту хоста вы подключаетесь локально.
Есть как минимум два способа сделать это. Либо ssh -f -N myUser@1.1.1.1 -L 3306:2.2.2.2:3310
а потом ssh myUser@localhost -p 3306
или проверить ssh_config и добавьте что-то вроде этого
Host 1.1.1.1
HostName 1.1.1.1
User myUser
LocalForward 3306 127.0.0.1:3310