[英]Jupyter notebook SSH tunnel for two step ssh tunnel
我想通过 SSH 隧道访问 jupyter notebook 并按照这个秘籍
https://hsaghir.github.io/data_science/jupyter-notebook-on-a-remote-machine-linux/
总结 - : 1. 登录远程机器
user@local_host$ ssh user@remote_host
remote_user@remote_host$ jupyter notebook --no-browser --port=8889
2.在一个新的终端:
user@local_host$ ssh -N -L localhost:8888:localhost:8889 remote_user@remote_host
3.然后转到浏览器并转到
localhost:8888
现在这是我的问题:我只能分两步访问远程机器
ssh -X username@server
ssh -KX my_pc_name
并且 jupyter notebook 只安装在 my_pc_name 上。
当我用更长的登录程序替换第一步的第一行时,我应该为第二步写什么?
当我插入remote_user = username 和 remote_user = my_pc_name 时,我从 jupyter notebook 收到一个安全错误,要求提供令牌。 我从第一步获得的令牌,运行 jupyter notebook 将不起作用。
一种解决方案是将两个 ssh 登录步骤合二为一。
似乎“服务器”是您的网关服务器,而“my_pc_name”只能从那里访问。 尝试建立两个连接的 ssh 隧道,如下所示:
所以我会这样做。 打开终端并运行:
ssh -f username@server -L 8888:localhost:8889 -N
这将您的本地机器连接到跳转服务器并进行端口转发。
然后打开一个新终端并运行:
ssh username@server
ssh -f my_pc_name -L 8889:localhost:8889 -N -K
这应该将您连接到跳转服务器并在跳转服务器和 my_pc_name 之间进行端口转发。
然后打开另一个终端并运行:
ssh -X username@server
ssh -KX my_pc_name
jupyter notebook --no-browser --port=8889
这应该将您连接到 my_pc_name 并在那里运行 jupyter notebook 服务器。
最后转到本地计算机上的浏览器并访问: localhost:8888
您的 ssh 连接字符串中确实有 -X 选项,它表示 X11 窗口(一种用于 linux 的远程桌面)。 试着放下它,看看它是否仍然有效,否则你可能不得不保留它。 此外,-K 表示转发 Kerberos 票证,您可能需要允许文件访问,所以我保留了它。
您可能需要在您的机器上组合使用这些功能才能使其正常工作。
尽管我们从 Kai 那里得到了很好的回答,但它可能会让某些人感到困惑; 至少我有一些问题。
为了为 jupyter notebook/lab 建立从您的服务器到本地机器的连接,我们需要在本地机器上打开三个终端窗口。
请遵医嘱。
第一个终端窗口:
ssh -f username1@gateway_server -L :7001:localhost:7001 -N -v -v
不要关闭第一个终端!
第二个终端窗口:
ssh username1@gateway_server
ssh -f username2@working_server -L 7001:localhost:7001 -N -K -v -v
不要关闭第二个终端!
第三个终端窗口:
ssh -X username1@gateway_server
ssh -KX username2@working_server
jupyter lab --no-browser --port=7001&
在本地机器上,转到浏览器:http://localhost:7001/
在 Mac 上测试。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.