2017-02-14 39 views
2

Jupyter只允許從本地主機訪問,除非我做了一堆額外的安全的東西。我正在運行我的服務器,以便它只能在本地網絡上訪問,任何具有訪問權限的人都可以信任到本地主機。如何設置沒有額外安全功能的jupyter筆記本服務器?如何,創建一個不安全的jupyter服務器

回答

6

根據你的問題,我想你想這個配置(~/.jupyter/jupyter_notebook_config.py):

c.NotebookApp.ip = '0.0.0.0' # listen on all IPs 
c.NotebookApp.token = ''  # disable authentication 

有在Jupyter幾個安全功能(如4.3.1)。我將繼續介紹如何禁用每一個,以及是否/何時將其禁用:

  1. 它只在本地主機上偵聽。這是可以改變所有的公共IP地址:

    c.NotebookApp.ip = '0.0.0.0' 
    

    上偵聽的公網IP,一般應配備啓用HTTPS和/或密碼或令牌認證(docs)。如果它是所有內部信任的網絡上,其中沒有什麼不好的事也沒發生,就可以繼續以禁止其它安全功能:

  2. 令牌認證默認情況下啓用。禁用它:

    c.NotebookApp.token = '' 
    

    禁用認證意味着任何有權訪問主機的人都可以運行代碼。看起來這是你想要的。您也可以enable a password

    In [1]: from notebook.auth import passwd 
    In [2]: passwd() 
    Enter password: 
    Verify password: 
    Out[2]: 'sha1:67c9e60bb8b6:9ffede0825894254b2e042ea597d771089e11aed' 
    

    可以將此存儲c.NotebookApp.password

  3. Jupyter也有CORS保護,以避免從能夠訪問此服務器的其他網站。這意味着,當網絡上的用戶訪問example.com,該網頁上的JavaScript不能筆記本電腦服務器上執行代碼。這聽起來像你想摸摸這個,但如果你正在運行應該能夠訪問筆記本電腦服務器的服務,你可以把它添加到:

    c.NotebookApp.allow_origin = 'https://your.other.host' 
    
  4. 最後,Jupyter 4.3。 1引入了一個xsrf標記,它是處理上述同一類別的跨站點執行的一部分。你必要去碰這一點,如果用戶僅直接訪問服務器,而不是通過在其他網站的JavaScript。

    c.NotebookApp.disable_check_xsrf = True 
    

一個完全不安全筆記本服務器,這是說一個地方的任何網站,可以在其上運行的代碼,只要瀏覽器可以連接到它的主機(這將包括本地主機或LAN,如果瀏覽器從局域網內)運行:

c.NotebookApp.ip = '0.0.0.0' # listen on all IPs 
c.NotebookApp.token = ''  # disable authentication 
c.NotebookApp.allow_origin = '*' # allow access from anywhere 
c.NotebookApp.disable_check_xsrf = True # allow cross-site requests 

,如果你的目標是讓計算資源免費爲世界通過筆記本API但是他們想用這可能是可取的。

+1

其實,我只需要1)和2),但這是jupyter筆記本安全功能精彩講解。非常感謝! – Scott