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

| 我正在尝试使用python脚本从中间主机作为代理的远程主机获取SQL转储,如下所示:
local machine -> proxy -> remote
代理服务器必须存在,因为远程主机仅允许通过该代理服务器的连接。 注意:我在如何通过Paramiko隧道(或类似软件包)连接到数据库时也意识到了类似的问题,但是该解决方案似乎特定于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()
    

要回复问题请先登录注册