如何创建不安全的jupyter服务器 [英] how-to create an insecure jupyter server

查看:21
本文介绍了如何创建不安全的jupyter服务器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

Jupyter只允许从localhost访问,除非我执行一系列额外的安全工作。我正在运行我的服务器,以便它只能在本地网络上访问,在该网络中,任何具有访问权限的人都与localhost具有同等的可信性。如何设置没有额外安全功能的jupyter笔记本服务器?

推荐答案

根据您的问题,我希望您需要此配置(在~/.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. 它只侦听localhost。可以将其更改为所有公用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中。

    您也可以将此密码存储在(~/.jupyter/jupyter_notebook_config.json):

    {
        "NotebookApp": {
            "password": "sha1:67c9e60bb8b6:9ffede0825894254b2e042ea597d771089e11aed"
        }
    }
    
  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
    

A完全不安全笔记本服务器,即任何网站都可以在其上运行代码的服务器,只要浏览器可以连接到其主机(如果浏览器从LAN内部运行,这将包括localhost或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随心所欲地使用计算资源,则可能需要这样做。

这篇关于如何创建不安全的jupyter服务器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆