Доступ к внутреннему серверу снаружи через SSH
Вопрос заключается в следующем:
Я использую Ubuntu Linux.
Я работаю дома, и мне нужен доступ к базе данных PostgreSQL в сети моей компании. Вызовите сервер БД X. По соображениям безопасности доступ к одному компьютеру возможен извне с помощью ssh, назовите его Y.
Таким образом, сценарий: Home <- SSH -> Y <-----> X (DB)
Я думаю, что что-то вроде пересылки SSH (настроенное в.ssh/config) может помочь с этим, но я не уверен, как это сделать, есть идеи?
2 ответа
Вот решение: http://www.spencerstirling.com/computergeek/sshtunnel.html
Это делает SSH туннелирование с пересылкой через шлюз. Для описанного выше сценария вам необходимо выполнить следующую команду:
ssh -N -L 5555:X:5432 user@Y
Где X - это имя сервера базы данных, которое используется для обращения к нему с Y. 5555 - это просто какой-то произвольный порт, который не используется на вашей домашней машине, а 5432 - это порт, который прослушивает сервер базы данных PostgreSQL на X. Когда вы вводите эту команду, вам будет предложено ввести пароль, который вы используете для входа в Y.
Клиент PostgreSQL (например, pgAdmin) настроен следующим образом: хост: порт локального хоста: 5555 имя пользователя: пароль имени пользователя базы данных: пароль базы данных
Вы можете сделать обратный туннель SSH, чтобы пробить дыру в межсетевом экране корпорации. Сделайте это внутри компании:
ssh -nNT -R 5000:localmachinename:22 username@corpserver.com
Когда вы вошли в систему, вы можете подключиться из дома, выполнив:
ssh -p5000 localhost