S SH Tunnel Forwarding для подключения к базе данных Exasol через python и bash - PullRequest
0 голосов
/ 21 января 2020

Я объясню ситуацию и спрошу в конце.

У меня есть рабочий компьютер, Ма c. На этом Ма c у меня сохранена эта команда:

ssh -n -f -T -N -L {port} {server IP} {email} -i {path to secret RSA key}

( Фигурные скобки только для того, чтобы вы знали, что там есть )

Мне нужно выполнить эту команду, чтобы инициировать туннель s sh, и мне нужно дать пароль для bash, чтобы иметь возможность получить секретный ключ RSA.

Затем я открываю DBeaver и подключаюсь к базе данных Exasol, используя свои учетные данные и входя через 127.0.0.1 (поэтому порт перенаправляется на домашний ip по умолчанию) и тот же порт, указанный в команде bash .

Вот список всех данных:

  • порт сервера (очевидно, туннельный порт также установлен на моем компьютере)
  • IP-адрес сервера
  • электронная почта (которую я предполагаю myuser@serverdomain.sthg)
  • ключ к файлу, содержащему ключ RSA
  • 127.0.0.1, в качестве IP-адреса, который я использую для подключения к базе данных Exasol
  • порт сервера, аналогичный указанному выше
  • пользователь для базы данных
  • и пароль для этого пользователя для базы данных

Я хочу развернуть программу, которая регулярно извлекает данные из этого DWH. У меня было две идеи:

  1. Делать все в python.

Теперь я хотел бы использовать paramiko, sshtunnel и pyexasol (python библиотеки) для записи но за всю жизнь я прочитал так много сообщений о переполнении стека и перепробовал множество комбинаций туннельных переменных s sh. И это не помогает, что pyexasol - это новый и, казалось бы, изолированный и застойный проект, поэтому я не могу выполнить s sh там.

развернуть контейнер docker, который запускает bash для выполнения этой команды, а затем использовать саму bash или программу python для подключения к базе данных и получения данных.

Но я очень мало знаю о сетевой архитектуре и Idk, как это вообще может работать.

Вопрос 1:

Не могли бы вы мне помочь:

  1. либо с кодом для открытия туннеля s sh с использованием sshtunnel

  2. , либо с идеей, как я могу сделать это с Docker

Вопрос2:

Возможно ли это развернуть? Или туннельная пересылка s sh ДОЛЖНА исходить от ЭТОГО ОСОБЕННОГО КОМПЬЮТЕРА, чтобы сервер ее принял?

Спасибо, что прочитали все это!

...