Python 与Paramiko的端口转发
我正在尝试使用Paramiko从python应用程序进行端口转发。我可以很好地设置SSH连接,但是对于如何使用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.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)