从 SSH 运行 Jupyter Notebook 到远程服务器节点

Posted

技术标签:

【中文标题】从 SSH 运行 Jupyter Notebook 到远程服务器节点【英文标题】:Run Jupyter Notebook from SSH to remote server node 【发布时间】:2022-01-12 10:35:32 【问题描述】:

我想从 SSH 运行一个 jupyter notebook 到远程服务器节点。 步骤:

    ssh user@remote.server jupyter notebook --no-browser --port=8887

我的电脑上的步骤:

    ssh -N -L localhost:8888:localhost:8887 user@remote.server 运行 localhost:8888

这很好用。但是我想在 user@remote.server 内的 node1 上运行它,因为 node1 包含一个 GPU。

我所做的步骤是相似的,除了这个: ssh -N -L localhost:8888:localhost:8887 user@remote.server "ssh node1"

但这不起作用:“通道 2:打开失败:连接失败:连接被拒绝”

编辑:/etc/hosts:

根据@ajz34的回答,多次尝试后的解决方案:

    在 node1 上:jupyter notebook --no-browser --port=8886 --ip=127.0.0.1 在服务器上:ssh -N -L 8887:127.0.0.1:8886 node1 在本地:ssh -N -L 8888:127.0.0.1:8887 user@xxx.xxx.xxx.xxx

【问题讨论】:

【参考方案1】:

我认为一个可能的简单解决方案是添加一个中间 ssh 连接。

假设您的工作流程是计算机 -> 服务器(访问节点)-> node1(计算节点),那么

从user@remote.node1,执行

jupyter notebook --no-browser --port=8886

从user@remote.server,执行

ssh -N -L localhost:8887:localhost:8886 user@remote.node1

在您的计算机上执行

ssh -N -L localhost:8888:localhost:8887 user@remote.server

然后在您的计算机浏览器上运行 localhost:8888。

从@CasellaJr 的解析来看,也许对于不同的服务器,您可能希望将localhost 显式更改为127.0.0.1[::1] 或其他可能有效的地址。

【讨论】:

如果计算节点(node1)无法分配请求的localhost地址,在jupyter notebook ...后面加上--ip=127.0.0.1可以避免这个问题。我刚刚在我的 HPC 环境中遇到了这个问题。 我还找到了***.com/a/60431456/7740992。如果计算节点不能通过 ssh 访问,但可以通过 LSF 访问,则需要 LSF 脚本。 我继续有这个错误:通道2:打开失败:连接失败:连接被拒绝 可以肯定的是,我已经这样做了:在我的 node1 的 conda 环境中:jupyter notebook --no-browser --port=8886 --ip=127.0.0.1 然后在我的服务器中:ssh -N -L localhost:8887:localhost:8886 user@ip node1 和我的本地 PC 上:ssh -N -L localhost:8888:localhost:8887 user@ip 我认为我已经听从了您的建议,但它不起作用。注意错误channel 2: open failed: connect failed: Connection refused出现在我写ssh -N -L localhost:8887:localhost:8886 user@ip node1的终端上

以上是关于从 SSH 运行 Jupyter Notebook 到远程服务器节点的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 ssh 和 Serveo.Net 访问公共 Internet 上的 Jupyter Notebook?

如何使用jupyter notebook

如何在云端服务器运行Jupyter Notebook

Jupyter notebook SSH 隧道错误“无法打开签名数据库”

丢失 jupyter notebook ssh 连接会杀死内核

ssh远程登录Jupyter notebook(七月GPU服务器)