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

Run Jupyter Notebook from SSH to remote server node

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

  1. ssh 用户@remote.server
  2. jupyter notebook --no-browser --port=8887

我电脑上的步骤:

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

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

除此之外,我执行的步骤类似: ssh -N -L localhost:8888:localhost:8887 user@remote.server "ssh node1"

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

编辑:/etc/hosts:

多次尝试解决,按照@ajz34的回答:

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

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

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

  • 从user@remote.node1,执行

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

  • 来自用户@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] 或其他可能有效的地址。