加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

proxy – paramiko:SSH端口转发以获取SQL转储

发布时间:2020-12-12 16:23:41 所属栏目:MsSql教程 来源:网络整理
导读:我试图使用python脚本从远程主机获取SQL转储,中间主机作为代理,如下所示: local machine - proxy - remote 代理需要存在,因为远程主机仅允许通过该代理进行连接. 注意:我在How to connect to a database through a Paramiko Tunnel (or similar package)知
我试图使用python脚本从远程主机获取SQL转储,中间主机作为代理,如下所示:
local machine -> proxy -> remote

代理需要存在,因为远程主机仅允许通过该代理进行连接.

注意:我在How to connect to a database through a Paramiko Tunnel (or similar package)知道类似的问题,但解决方案似乎特定于PostgreSQL.

我通过paramiko使用SSH建立连接.我知道forward.py是端口转发的paramiko示例,但我不确定我是否正确使用它.这就是我做的(PX =代理,RMT =远程):

forward.py --password --host=PX --port=PXport --user=PXusr RMT:RMTport

我得到了这个结果:

*** Unable to open host keys file
*** Warning: no host key for PX
Connecting to ssh host PX:PXport ...
Now forwarding port 4000 to RMT:RMTport ...

然后脚本卡在最后一行.

Q1:有没有人有一个如何使用paramiko的forward.py通过代理连接到远程主机的例子?

Q2:建立连接后,是否可以在远程主机上以编程方式执行shell命令?

解决方法

我最近编写了一个SSHForwarder类,可以执行您想要的操作:

https://gist.github.com/1399529

要使用它,你可以这样做:

try:
        proxy_host = 'PX'
        proxy_user = 'PXusr'
        target_port = RMTport
        target_host = 'RMT'
        f = SSHForwarder(proxy_host,target_port,target_host,proxy_user)
        # .... DO SOME STUFF ....
    finally:
        if f:
            f.close()

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读