6

我在远程 linux 服务器上运行 ipcluster,并从 MS Windows PC 远程连接。从外部看不到服务器,因此我需要使用 ssh 隧道通过我在 json 文件中定义的其他机器进行连接。但是,需要多次尝试(和内核重新启动)才能成功连接,通常我得到 TimeoutError

rc=Client("ipcontroller_client.json", sshkey="key.txt")

C:\Local\Python27\lib\site-packages\IPython\parallel\client\client.py in __init__(self, url_or_file, profile, profile_dir, ipython_dir, context, debug, exec_key, sshserver, sshkey, password, paramiko, timeout, **extra_args)
    384         self._queue_handlers = {'execute_reply' : self._handle_execute_reply,
    385                                 'apply_reply' : self._handle_apply_reply}
--> 386         self._connect(sshserver, ssh_kwargs, timeout)
    387 
    388     def __del__(self):

C:\Local\Python27\lib\site-packages\IPython\parallel\client\client.py in _connect(self, sshserver, ssh_kwargs, timeout)
    488         evts = poller.poll(timeout*1000)
    489         if not evts:
--> 490             raise error.TimeoutError("Hub connection request timed out")
    491         idents,msg = self.session.recv(self._query_socket,mode=0)
    492         if self.debug:

TimeoutError: Hub connection request timed out

此外,一旦连接,在一段时间不活动(约 15 分钟)后,连接似乎会中断,如果我发出一些需要与集群通信的命令(例如,rc.queue_status()),整个 ipython 会话就会变得无响应。

我在服务器日志中没有发现任何有用的东西,我总是可以看到建立和关闭的初始连接,并且在成功的情况下,在创建各种 ssh 隧道(?)时打开其他连接。

在 linux ssh 服务器上是否需要调整一些特定的设置(sshd_config)?如何保持连接活动(或重新连接)?谢谢你。

4

0 回答 0