Python 与Paramiko的端口转发

Python 与Paramiko的端口转发,python,ssh,paramiko,Python,Ssh,Paramiko,我正在尝试使用Paramiko从python应用程序进行端口转发。我可以很好地设置SSH连接,但是对于如何使用paramiko.Transport,我有点困惑。我已经找到了,但我不知道里面发生了什么。从中可以看出,似乎只有一行使用了open\u channel功能,但我不知道如何实现它。我正在尝试复制一个简单的ssh-l8000:localhost:8000 有人能帮我吗?请使用paramiko-1.7.7.1、pycrypto-2.6和我从第115行中删除代码的代码(以避免选项解析) 我已经在

我正在尝试使用Paramiko从python应用程序进行端口转发。我可以很好地设置SSH连接,但是对于如何使用
paramiko.Transport
,我有点困惑。我已经找到了,但我不知道里面发生了什么。从中可以看出,似乎只有一行使用了
open\u channel
功能,但我不知道如何实现它。我正在尝试复制一个简单的
ssh-l8000:localhost:8000


有人能帮我吗?

请使用
paramiko-1.7.7.1
pycrypto-2.6
和我从第115行中删除代码的代码(以避免选项解析)

我已经在Windows工作站上成功地测试了它,使用了Red Hat下的ssh服务器,并指向第三台服务器。(我正在使用
python2.7.2


希望有帮助,

请使用
paramiko-1.7.7.1
pycrypto-2.6
和我从第115行中删除代码的代码(以避免选项解析)

我已经在Windows工作站上成功地测试了它,使用了Red Hat下的ssh服务器,并指向第三台服务器。(我正在使用
python2.7.2

希望对您有所帮助,

您可以使用

代码示例:

import sshtunnel

with sshtunnel.open(
    (ssh_host, ssh_port),
    ssh_host_key=None,
    ssh_username=ssh_user,
    ssh_password=ssh_password,
    ssh_private_key=None,
    remote_bind_address=(REMOTE_HOST, REMOTE_PORT)) as server:

    def do_something(port):
        # Do something with port
        pass

    print("LOCAL PORT:", server.local_bind_port)

    do_something(server.local_bind_port)
你可以用

代码示例:

import sshtunnel

with sshtunnel.open(
    (ssh_host, ssh_port),
    ssh_host_key=None,
    ssh_username=ssh_user,
    ssh_password=ssh_password,
    ssh_private_key=None,
    remote_bind_address=(REMOTE_HOST, REMOTE_PORT)) as server:

    def do_something(port):
        # Do something with port
        pass

    print("LOCAL PORT:", server.local_bind_port)

    do_something(server.local_bind_port)

所以我已经设法在这方面做得更进一步了,我想我可能找错了方向。我已经通过在原始连接上调用get_transport()解决了如何操作open_channel命令的问题,但是当我尝试用它打开直接或转发的tcpip连接时,我从服务器上得到了管理禁止,这对于从正常SSH会话转发-L端口是很好的。有什么想法吗?你能发布你的代码/你正在使用的代码的一部分吗?所以我已经设法进一步了解了这一点,并且认为我可能找错了方向。我已经通过在原始连接上调用get_transport()解决了如何操作open_channel命令的问题,但是当我尝试用它打开直接或转发的tcpip连接时,我从服务器上得到了管理禁止,这对于从正常SSH会话转发-L端口是很好的。有什么想法吗?你能发布你的代码/你正在使用的代码的一部分吗?看起来代码示例中的缩进不正确…?此包不做远程端口转发,只做本地。看起来代码示例中的缩进不正确…?此包不做远程端口转发,仅本地。
forward.py
链接已断开。请查看此链接:
forward.py
链接已断开。请看这个:
import sshtunnel

with sshtunnel.open(
    (ssh_host, ssh_port),
    ssh_host_key=None,
    ssh_username=ssh_user,
    ssh_password=ssh_password,
    ssh_private_key=None,
    remote_bind_address=(REMOTE_HOST, REMOTE_PORT)) as server:

    def do_something(port):
        # Do something with port
        pass

    print("LOCAL PORT:", server.local_bind_port)

    do_something(server.local_bind_port)