Я пытаюсь подключиться к серверу mysql в удаленной сети, и чтобы добраться до него, мне сейчас нужно выполнить несколько ssh-переходов, поэтому я могу использовать интерфейс командной строки mysql. Я действительно хотел бы создать туннель с несколькими переходами, чтобы я мог просто использовать графический интерфейс со своего рабочего стола. Как это будет работать?
Вот такой порядок:
MacDesktop -> DevServer -> StageServer -> Mysql01
Все (кроме рабочего стола Mac) - это Linux-боксы, а mysql работает на стандартном порту. Есть подсказки? Или точная строка подключения?
Вы можете использовать ssh для перенаправления портов (при условии, что сервер mysql настроен для приема соединений от StageServer на порту 3306):
# Forward port 3306 from Mysql01 to local port 3306 on DevServer using StageServer in the middle
DevServer > ssh -L 3306:Mysql01:3306 StageServer
# Forward the local port 3306 on DevServer to local port 3306 on your Mac
MacDesktop> ssh -L 3306:127.0.0.1:3306 DevServer
Теперь настройте клиент gui для подключения к 127.0.0.1:3306 (убедитесь, что вы не запускаете mysql на своем Mac или перенаправление на порт 3306 не будет выполнено, или используйте другой порт для перенаправления)
Изменить: убедитесь, что в конфигурации ssh-сервера включена переадресация локального порта.
Я знаю, что это старый вопрос, но он все еще очень полезен.
Используйте многострочную команду для создания цепного туннеля, например:
ssh -f <DevServer> "ssh -f -L 5678:<MySQL01>:3306 <StageServer> \"sleep 10\"";\
ssh -f -L 3306:127.0.0.1:5678 <DevServer> "sleep 10";\
mysqlsh --sql -h127.0.0.1 -P3306 -u<UserName> -D<Schema>
Это подключает клиентскую утилиту MySQL к удаленной БД, а затем, когда вы выходите, оба туннеля закрываются. В этом случае туннель проходит через порт 5678, но вы можете использовать любой неиспользуемый номер порта.