gpt4 book ai didi

python - 如何设置 sshtunnel 的连接超时

转载 作者:行者123 更新时间:2023-12-02 03:17:12 26 4
gpt4 key购买 nike

我在 python 上使用 sshtunnel 模块中的 SSHTunnelForwarder。

给出下一个代码:

server = SSHTunnelForwarder(
(sshServer, sshPort),
ssh_username=sshUsername,
ssh_password=sshPassword,
remote_bind_address=(imapServer, imapPort),
local_bind_address=('127.0.0.1', localPort)
)

print('STARTING')

server.start()

print(server.is_active)

有时需要很长时间,也许几分钟,然后我会收到错误:

2019-04-22 22:25:54,365| ERROR   | Could not connect to gateway ip..... : 110
Traceback (most recent call last):
File "PYTHON_TUNNEL.py", line 24, in <module>
server.start()
File "/home/mike/.local/lib/python2.7/site-packages/sshtunnel.py", line 1295, in start
reason='Could not establish session to SSH gateway')
File "/home/mike/.local/lib/python2.7/site-packages/sshtunnel.py", line 1101, in _raise
raise exception(reason)
sshtunnel.BaseSSHTunnelForwarderError: Could not establish session to SSH gateway

Ubuntu 18.04、Python 2.7

是否可以设置隧道建立超时?

最佳答案

有一个 SSH_TIMEOUTsocket used to create the transport 上设置的 sshtunnel.py 中默认值为 None 的常量在调用 connect 之前。

不幸的是,我自己无法测试这一点,但您可以在启动隧道转发器之前尝试修补该常量:

import sshtunnel

sshtunnel.SSH_TIMEOUT = 5.0

server = sshtunnel.SSHTunnelForwarder([...])
server.start()

还有一个TUNNEL_TIMEOUT常量,但这似乎用于 checks if the tunnel is already established以及调用open_channelunderlying Paramiko Transport instance 。它在隧道创建过程中似乎没有发挥作用。
此外,TUNNEL_TIMEOUT 默认设置为一秒,并且您在服务器上遇到了长达一分钟的延迟.start()BaseSSHTunnelForwarderError 引发之前,该常量似乎不太可能与您的问题的解决方案相关。

关于python - 如何设置 sshtunnel 的连接超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55800149/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com