我正在使用paramiko的rforward.py演示脚本,该脚本演示了反向SSH隧道的工作方式。该代码包含以下几行:transport.request_port_forward('', server_port)
运行此代码时,出现以下错误:
Traceback (most recent call last):
File "C:\Users\Name\Documents\bh_python\rforward.py", line 167, in <modul
e>
main()
File "C:\Users\Name\Documents\bh_python\rforward.py", line 160, in main
reverse_forward_tunnel(options.port, remote[0], remote[1], client.get_transp
ort())
File "C:\Users\Name\Documents\bh_python\rforward.py", line 73, in reverse
_forward_tunnel
transport.request_port_forward('', server_port)
File "build\bdist.win32\egg\paramiko\transport.py", line 775, in request_port_
forward
paramiko.ssh_exception.SSHException: TCP forwarding request denied
这是有问题的transport.request_port_forward代码:
def request_port_forward(self, address, port, handler=None):
if not self.active:
raise SSHException('SSH session not active')
port = int(port)
response = self.global_request('tcpip-forward', (address, port), wait=True)
if response is None:
raise SSHException('TCP forwarding request denied')
if port == 0:
port = response.get_int()
if handler is None:
def default_handler(channel, src_addr, dest_addr_port):
#src_addr, src_port = src_addr_port
#dest_addr, dest_port = dest_addr_port
self._queue_incoming_channel(channel)
handler = default_handler
self._tcp_handler = handler
return port`
看来我的系统正在拒绝端口转发请求。我该如何验证并解决问题?我在Windows 7上运行。
最佳答案
这听起来像是服务器上的某些东西被阻止了。虽然我对Windows不太熟悉,但我相信应该可以安装SSH命令行客户端,并尝试使用ssh客户端复制您对Paramiko所做的操作。如果它与SSH客户端一起使用,则说明您的代码存在问题。否则,您将遇到服务器配置问题。
关于ssh - paramiko.ssh_exception.SSHException:TCP转发请求被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30940374/