0

我会解释情况并在最后询问。

我有一台工作电脑,一台 Mac。在这台 Mac 上,我保存了这个命令:

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

花括号只是为了让你知道那里有什么

我需要执行该命令来启动 ssh 隧道,并且我需要为 bash 提供密码才能检索秘密 RSA 密钥。

然后我打开 DBeaver 并使用我的凭据连接到 Exasol 数据库并通过输入127.0.0.1(因此端口默认转发到主 ip)和 bash 命令中给出的相同端口。

以下是给出的所有数据的列表:

  • 服务器端口(显然,我的计算机上也有隧道端口)
  • 服务器IP
  • 电子邮件(我想是 myuser@serverdomain.sthg)
  • 包含 RSA 密钥的文件的密钥
  • 127.0.0.1,作为我用来连接 Exasol 数据库的 IP
  • 服务器端口,和上面的一样
  • 数据库的用户
  • 和该用户的数据库密码

我想部署一个定期从此 DWH 检索数据的程序。我有两个想法:

  1. 用python做所有事情。

现在,我想使用 paramiko、sshtunnel 和 pyexasol(python 库)来编写程序,但在我的一生中,我已经阅读了很多堆栈溢出帖子并尝试了很多 ssh 隧道变量的组合。pyexasol 是一个新的、看似孤立和停滞的项目,这无济于事,所以我不能在那里做 ssh。

  1. 部署一个运行 bash 的 docker 容器来执行该命令,然后使用 bash 本身或 python 程序连接到数据库并检索数据。

但我对网络架构和 Idk 知之甚少,这甚至是如何工作的。

问题1:

你可以帮帮我吗:

  1. 使用 sshtunnel 打开 ssh 隧道的代码

  2. 或者知道如何使用 Docker 做到这一点

问题2:

甚至可以部署这个吗?或者 ssh 隧道转发是否需要来自这台特定的计算机才能让服务器接受它?

感谢您阅读所有这些内容!

4

0 回答 0