本地使用远程服务器的jupyter notebook 方法总结

在网上查找了很多资料,试了很多方法,踩了不少坑,现在记录下最终的可行方案。

主要参考这2篇:https://cloud.tencent.com/developer/article/1488507

                         https://www.cnblogs.com/qiangzi0221/p/8933722.html

1、生成配置文件,有的服务器是已经生成了配置文件,这步就可以省略。root用户需要加上--allow-config.

$:jupyter notebook --generate-config   # jupyter notebook --generate-config --allow-config

2、生成密钥,打开python解释器

$:python

>>>from notebook.auth import passwd

>>>passwd()

#输入新的登陆密码(本地访问的时候使用)

#再次确认

#生成key,复制留存并修改到配置文件中去

 比如我生成的key是 : 'sha1:69a5200a8cca:fc886d755620d9ddaec077439ca272fg048ec416'

3、采用 SSL 加密通信

输入下面的命令,会让你输入一些地理位置信息,这些可以随便填

$:openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout mykey.key -out mycert.pem

 完成后输出以下命令

$:jupyter notebook --certfile=mycert.pem --keyfile mykey.key

 4、修改配置文件,就是第一步中生成的配置文件的路径。

$:vim  ~/.jupyter/jupyter_notebook_config.py

在配置文件中修改 或者直接添加:

# 证书的信息
c.NotebookApp.certfile = u'/absolute/path/to/your/certificate/mycert.pem'
c.NotebookApp.keyfile = u'/absolute/path/to/your/certificate/mykey.key'
# ip 设置为 *
c.NotebookApp.ip = '*' # 这里设置成'0.0.0.1' 也可以 我就是这样的 或者 '服务器IP'
c.NotebookApp.password = u'sha1:bcd259ccf...<your hashed password here>'
c.NotebookApp.open_browser = False # 不打开浏览器,后台运行

# 设置一个固定的接口
c.NotebookApp.port = 80

5、最后一步,在服务端开启notebook

扫描二维码关注公众号,回复: 11346183 查看本文章
$ jupyter notebook

6、 此时notebook已经打开,回到自己本机,需要先建立一次ssh连接,不然有的服务器会拒绝

$:ssh username@address -L 127.0.0.1:1234:127.0.0.1:8888
$:ssh username@address -p 800 -L 127.0.0.1:1234:127.0.0.1:8888

username是你远程服务器账号的名字,address是服务器的ip地址 ,如果服务器开放端口不是默认的22 ,比如是800,那就在adress后面添加 -p 800

现在就可以在自己浏览器中输入  localhost:1234 直接访问远程的 jupyter notebook了 或者 127.0.0.1:1234。

另外,windows用户无法用cmd使用ssh话,参考我这篇配置下ssh服务。

window 下用cmd使用ssh 教程(踩的坑总结)https://blog.csdn.net/qq_26593695/article/details/104533592

猜你喜欢

转载自blog.csdn.net/qq_26593695/article/details/104533867