Я объясню ситуацию и спрошу в конце.
У меня есть рабочий компьютер, Ма 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. У меня было две идеи:
- Делать все в python.
Теперь я хотел бы использовать paramiko, sshtunnel и pyexasol (python библиотеки) для записи но за всю жизнь я прочитал так много сообщений о переполнении стека и перепробовал множество комбинаций туннельных переменных s sh. И это не помогает, что pyexasol - это новый и, казалось бы, изолированный и застойный проект, поэтому я не могу выполнить s sh там.
развернуть контейнер docker, который запускает bash для выполнения этой команды, а затем использовать саму bash или программу python для подключения к базе данных и получения данных.
Но я очень мало знаю о сетевой архитектуре и Idk, как это вообще может работать.
Вопрос 1:
Не могли бы вы мне помочь:
либо с кодом для открытия туннеля s sh с использованием sshtunnel
, либо с идеей, как я могу сделать это с Docker
Вопрос2:
Возможно ли это развернуть? Или туннельная пересылка s sh ДОЛЖНА исходить от ЭТОГО ОСОБЕННОГО КОМПЬЮТЕРА, чтобы сервер ее принял?
Спасибо, что прочитали все это!