jupyter notebook连接远程服务器

  此方法可以通过本地浏览器访问远程服务器上的notebook。 1. 在远程服务器上打开ipython,保存哈希密码

1
2
3
4
from notebook.auth import passwd
passwd()
#根据提示输入任意密码,如abcd,会得到如下输出,记录下来
#sha1:xxxxxxx
2. 进入~/.jupyter/,查看是否有notebook的配置文件jupyter_notebook_config.py,若没有的话直接创建:
1
2
3
4
5
6
cat > jupyter_notebook_config.py
c = get_config()
c.NotebookApp.ip='*'
c.NotebookApp.password = u'sha1:xxxxx' # xxxx为上一步生成的哈希密码
c.NotebookApp.open_browser = False
c.NotebookApp.port = 5678 # 随机挑选数字
3. 在远程服务器上执行如下命令:
1
jupyter notebook --no-browser --port=5678
4. 在本地的终端输入如下命令:
1
2
3
4
5
6
7
8
ssh -N -f -L 127.0.0.1:1234:127.0.0.1:5678 user@address
#表示把本地的1234端口连接到远程服务器上的5678端口
-N 告诉SSH不执行远程命令,用于端口转发
-f 让SSH后台运行,也可以不设-f,前台运行
-L 出端口转发的配置,remote port 5678 -> local port 1234

#如果远程服务器不是通过22端口进行ssh连接,则可以通过 -p nnn 指定ssh的端口
#此命令会在后台执行,可以通过 kill 命令把对应的进程关闭
5. 打开本地浏览器,地址栏输入localhost:1234,输入第一步指定的密码abcd即可。