Проблема следующие:
Я использую Ubuntu Linux.
Я работаю из дома, и я должен получить доступ к базе данных PostgreSQL, более серьезной в сети моей компании. Назовите сервер БД X. Из соображений безопасности только к одной машине можно получить доступ от внешнего использования ssh, назвать это Y.
Таким образом, сценарий: Домой <-SSH-> Y <-----> X (DB)
Я думаю, что что-то как SSH, передающий (настроенный в .ssh/config), могло помочь с этим, но я не уверен, как сделать это, какие-либо идеи?
Вот решение: 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, например) настроен следующим образом: хост: порт localhost: 5 555 имен пользователя: пароль имени пользователя базы данных: пароль базы данных
Можно сделать реверс ssh туннель для прокалывания дыры через брандмауэр корпорации. Сделайте это из компании:
ssh -nNT -R 5000:localmachinename:22 username@corpserver.com
Когда Вы зарегистрированы, можно соединиться из дома путем выполнения:
ssh -p5000 localhost