使用SSH本地端口转发或MobaSSHTunnel访问远程服务器上的Jupyter Notebook

初始条件:安装jupyter notebook并设置密码。

1.        在远程服务器ubuntu上生成公钥和私钥

ssh-keygen -t rsa -b 4096

2.        设置相应的权限

chmod 700 ~/.ssh

chmod 600 ~/.ssh/id_rsa

chmod 644 ~/.ssh/id_rsa.pub

3.        将公钥id_rsa.pub添加到 ~/.ssh/authorized_keys 文件中

ssh-copy-id zitu-pc@192.168.100.234

4.        将私钥id_rsa下载到本地电脑

5.        修改文件权限

1)        点击“高级”,再点击“禁用继承”

2)        选择“将已继承的权限转换为此对象的显式权限”

3)        删除SYSTEM和Administrators

4)        点击“编辑”仅保留“读取和执行”和“读取”权限

5)        点击“确定”

6.        远程服务器Ubuntu启动jupyter notebook

jupyter notebook --no-browser --port 8889

第一种方式: SSH本地端口转发(SSH local port forwarding)

ssh -N -v -L localhost:8008:localhost:8889 -i D:\new\id_rsa zitu-pc@192.168.100.234

具体参数解释:

  • -N: 表示不执行远程命令,在这种情况下,只进行端口转发而不打开远程Shell会话。
  • -v: 表示启用详细模式,输出更多的调试信息,用于排查连接问题。
  • -L localhost:8008:localhost:8889: 指定本地端口转发规则,将本地的 8008 端口转发到远程服务器的 8889 端口。这意味着,当本地计算机通过访问 localhost:8008 时,实际上是在访问远程服务器 192.168.100.234 的 localhost:8889 端口。
  • -i D:\new\id_rsa: 指定用于身份验证的私钥文件路径。
  • zitu-pc@192.168.100.234: 远程SSH服务器的用户名和服务器地址。

本地浏览器访问127.0.0.1:8008

第二种方式:使用mobaxterm的隧道功能(MobaSSHTunnel)

1.        新建隧道

注:SSH的端口默认是22,Remote server填127.0.0.1。

2.        导入私钥

3.        点击启动

4.        可以正常访问