Хотя это не точное совпадение, вот пара других тесно связанных вопросов:
- Как получить доступ к серверу SSH, который не может принимать входящие соединения
- установка ssh-соединения между машинами за брандмауэрами
Чтобы решить вашу конкретную проблему, я бы добавил следующее к вашему .ssh/config
файлу на «A»:
Host B User abc ForwardAgent yes Host C User root LocalForward 3306:localhost:3306 ProxyCommand ssh -A B -p 22 -W %h:%p #ProxyCommand ssh -A B -p 22 nc %h %p
Имея это в виду, вы сможете использовать ssh C
для:
- получить оболочку на C, прыгая через B, и
- установите локальный (для хоста A) порт вперед для вашего рабочего места mysql.
Как только соединение установлено, вы можете указать свой локальный (на A) рабочий стол mysql на localhost: 3306. Если у вас есть другой экземпляр mysql, работающий локально на A, выберите другой порт в параметре LocalForward
конфигурации и подключитесь к нему.
Обратите внимание, что есть две опции для ProxyCommand, чтобы перейти через B, чтобы добраться до C. Альтернатива использует nc
вместо -W
опции ssh
, так как -W
опция не была добавлена unitl ssh версии 5.3 (IIRC).
Вам не нужно использовать SOCKS прокси.