当前位置: 首页 > 知识库问答 >
问题:

jupyter笔记本SSH隧道为两步ssh隧道

田佐
2023-03-14

我想通过SSH隧道访问jupyter笔记本,并遵循以下方法

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笔记本电脑只安装在我的电脑上。

当我用较长的登录过程替换第一步的第一行时,第二步应该写什么?

当我插入remote_user=username和remote_user=my_pc_name时,我从jupyter笔记本中得到一个安全错误,请求令牌。我从第一步获得的令牌,运行jupyter笔记本将不起作用。

一种解决方案是将两个ssh日志分步骤合并为一个。

共有2个答案

秦俊
2023-03-14

虽然凯给了我们一个很好的答案,但这可能会让一些人困惑;至少我有一些问题。

为了建立从服务器到jupyter笔记本/实验室本地计算机的连接,我们需要在本地计算机上打开三个终端窗口。

请按顺序做。

第一终端窗口:

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上测试。

弓泰
2023-03-14

“服务器”似乎是您的网关服务器,“我的电脑名”只能从那里访问。尝试建立两个连接的ssh隧道,如下所示:

https://medium.com/@sankarshan7/how-to-run-jupyter-notebook-in-server-which-is-at-multi-hop-distance-a02bc8e78314

所以我会这么做。打开一个终端并运行:

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

这会将您连接到我的电脑名,并在那里运行jupyter笔记本服务器。

最后,转到本地计算机上的浏览器并访问:localhost:8888

您的ssh连接字符串中确实有-X选项,这表示X11窗口(linux的一种远程桌面)。试着放下它,看看它是否还能用,否则你可能不得不保留它。另外,-K表示Kerberos票据的转发,您可能需要允许文件访问,所以我保留了它。

您可能需要在您的机器上使用这些工具的组合才能使其正常工作。

 类似资料:
  • 问题内容: 我的目的是连接到位于防火墙后面的服务器(主机)。我可以通过连接到网络中的另一台服务器(隧道)然后通过SSH到该服务器来访问此服务器。但是,我无法通过JSch实现相同的方案。 我无法为此编写以下代码。如果我在这里做任何愚蠢的事情,请告诉我。 上面的代码在行中给出了以下异常。 问题答案: jsch上的代理设置允许您连接到远程端上 正在运行的 代理服务器。一个在远程端将 不 被视为一个代理。

  • 我正在阅读SSH隧道-本地和远程端口转发示例说明 关于本地转发,可以使用 我不明白的是username@example.com。example.com应该是什么? 在我的环境中,我运行一台服务器,在host1的8888端口上侦听,在host2中我运行 访问host2:9999,我将进入登录页面。如果我改变myname@host1到myname@host2即使myname@host3,我也可以进入登

  • 我想使用RazorSQL连接到我的数据库,该数据库正在远程服务器上运行。我使用以下命令在本地主机上创建SSH隧道: 我通过RazorSQL的GUI配置连接,将本地主机指定为主机,将1111指定为端口。当我单击“Connect”(连接)时,出现以下错误消息: 其中是远程服务器的IP地址。 此外,我不允许更改我的pg_hba的内容。conf文件。这就是目前的情况: 是否可以使用我当前的设置,在不修改服

  • 问题内容: 我想用Java创建SSH隧道。我在另一篇文章中注意到了很多Java SSH库。在深入研究每个选项之前,也许有人可以给我一些代码片段,说明他们如何做到的,或者至少告诉我哪个客户端库效果最好。 我只需要隧道。我不需要诸如文件传输,终端仿真等之类的东西。是否有简单的几行代码可以转发服务器上的端口以在客户端的本地主机适配器上工作?理想情况下,客户端和服务器都应使用Java,但现在我只选择客户端

  • 我试图将JProfiler连接到运行在服务器上的JVM,我称之为remote。这台服务器只能通过另一台我称之为middle的服务器从我的工作站(本地)访问。我将JProfiler连接到remote的计划是: > 在远程计算机上安装JProfiler仪表 从本地、中间到远程建立SSH隧道:

  • 问题内容: 我已经在两个服务器 A 和 B 之间建立了SSH隧道。 B 有MySQL服务器,这可行: 虽然这不是: 尽管my.cnf具有以下几行: 现在关于隧道。它连接以下内容: 但是当(在 A上 ,端口转发)时,我会 我懂了 当我这样做 我懂了 可能是什么原因?我究竟做错了什么? 问题答案: 这里有三个问题。 1-暂时忘记SSH隧道 您不能将MySQL绑定到多个特定IP。第一个子句被第二个子句覆