本地使用遠程服務器的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

$ 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

uername是你遠程服務器賬號的名字,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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章