如何创建不安全的 jupyter 服务器

2024-03-23

Jupyter 只允许从本地主机访问,除非我做了一些额外的安全工作。我正在运行我的服务器,以便它只能在本地网络上访问,任何有权访问的人都与本地主机具有相同的可信度。如何设置没有额外安全功能的 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. 它仅在本地主机上侦听。可以将其更改为所有公共 IP 地址:

    c.NotebookApp.ip = '0.0.0.0'
    

    监听公共 IP 通常应启用 HTTPS 和/或密码或令牌身份验证(docs https://jupyter-notebook.readthedocs.io/en/latest/public_server.html)。如果这一切都在受信任的网络内部,没有发生任何不好的事情,您可以继续禁用其他安全功能:

  2. 默认情况下启用令牌身份验证。要禁用它:

    c.NotebookApp.token = ''
    

    禁用身份验证意味着有权访问主机的任何人都可以运行代码。看来这就是你想要的。你也可以启用密码 https://jupyter-notebook.readthedocs.io/en/latest/public_server.html#preparing-a-hashed-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 https://en.wikipedia.org/wiki/Cross-origin_resource_sharing保护,以避免其他网站能够访问该服务器。这意味着当您网络上的用户访问example.com,该页面上的 javascript 无法在您的笔记本服务器上执行代码。听起来像你don't想要触及这个,但如果您正在运行一个应该能够访问笔记本服务器的服务,您可以将其添加到:

    c.NotebookApp.allow_origin = 'https://your.other.host'
    
  4. 最后,Jupyter 4.3.1 引入了 xsrf 令牌,它是处理上述同一类别跨站点执行的一部分。你don't如果用户仅直接访问服务器,而不是通过其他网站上的 JavaScript,则需要触摸此选项。

    c.NotebookApp.disable_check_xsrf = True
    

A 完全没有安全感笔记本服务器,也就是说任何网站都可以在其上运行代码,只要浏览器可以连接到其主机(如果浏览器从 LAN 内部运行,则包括本地主机或 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 让全世界免费使用计算资源,那么这可能是理想的选择。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何创建不安全的 jupyter 服务器 的相关文章

随机推荐

  • 采用 OpenGL 中的 Wu 算法的数字微分分析仪

    我正在尝试制作一种使用 DDA 数字差分分析器 绘制线条的算法 该算法也使用 Wu 的算法作为抗锯齿 问题是输出看起来不太好 尤其 我选择的颜色 它改变了 我知道为什么 但我想知道它是否必须是这样的 像素颜色越亮则越亮 我怎样才能选择我想要
  • 从数据框中仅提取数字列[重复]

    这个问题在这里已经有答案了 我在互联网上查找 但没有找到简单而干净的解决方案 这是我的 df 的一部分 structure list ID structure c 12L 12L 12L 12L 12L 12L 12L 12L 12L 12
  • 缺少 1 个必需的位置参数:“key”

    class Keys def init self self key list 1 one 2 two 3 three def get name self key self ddd key key1 Keys key1 get name 1
  • React Native 导航显示白屏

    使用反应本机导航进行编译时出现白屏 请问为什么会这样 我似乎没有收到任何错误代码 什么也没有 我只看到一个白屏 为什么会这样呢 我的代码看起来像这样 表明到目前为止我似乎没有任何错误 Here is what the Error seems
  • 断言代码无法编译

    简而言之 如何编写一个测试 检查我的类不可复制或可复制分配 而只能移动和移动分配 一般来说 如何编写测试 确保特定代码does not编译 像这样 Movable but non copyable class struct A A cons
  • 如何在 @ElementCollection 上指定主键

    因此 如果某些表缺少主键 innodb 的行为可能会导致问题 因此 在 Hibernate 中 我正在寻找一个键来指定 ElementCollection 表上的主键 并将 Set 作为底层数据结构 我找到了一种带有地图的主键的方法 但这有
  • PHP,preg_replace,用标签属性替换标签

    我可以详细解释一下如何使用 php 替换具有当前 attr 的标记吗 我阅读了手册和一些参考资料 如何使用php preg replace替换HTML标签 https stackoverflow com questions 3376051
  • 不允许序列化“Doctrine\DBAL\Driver\PDOConnection”

    我正在做一个项目 我做了一个可导出的课程 这是班级 我正在发送查询以导出类型 Illuminate Database Eloquent Builder
  • 检查是否已经过去 24 小时(从字符串中读取)

    我将日期作为字符串保存在以下格式的文件中 Sat Jul 21 23 31 55 EDT 2012 如何查看是否已经过了 24 小时 我是初学者 所以请解释一下 我不确定我是否完全理解这个问题 您是否有两个日期可供比较 或者您是否希望定期检
  • 在 Jenkins 中设置特定的 Python

    我对配置 Jenkins 或 Python 很陌生 但我必须在 Jenkins 中设置统一测试 我的程序是用Python编写的 但仅适用于Python 2 6 而我应该使用的Jenkins版本是2 7 所以我尝试设置Jenkins来设置一些
  • 将可变数量的变量传递给 PHP 中的类

    我需要传递可变数量的字符串来实例化不同的类 我总是可以对数组的大小进行切换 switch count a case 1 new Class a 0 break case 2 new Class a 0 a 1 break etc 必须有更好
  • Prolog 中的掩码

    我最近一直在尝试理解 Prolog 并且一直在搞乱 Prolog 中的列表列表 我正在尝试创建一种我想在 p 中的面具 序言 我有一个谓词 它确定 Prolog 中两个列表列表 比如说 L1 和 L2 之间的差异 并将它们保存为列表列表 比
  • 如何测试是否支持稀疏文件

    给定文件描述符或文件名 我如何知道是否可以写入任意位置 而无需等待磁盘上的中间部分被显式清零 You can stat 文件获取文件大小和磁盘块数量 在文件末尾查找相对较少数量的磁盘块 写入已知数量的块 然后再次统计文件 将磁盘块的原始数量
  • 移动提供商无法进行 UDP 打洞

    实际上 我正在编写一个 Android 应用程序 该应用程序接收连接到 PC 的网络摄像头的图片 为了获得更多的 fps 我使用 udp 协议而不是 tcp 这个想法是 电脑将图片发送到手机的 IP 和端口 但电话提供商有不同的公共端口 所
  • 在 iOS 中检索通过蓝牙连接的配对设备

    我已连接条形码扫描仪设备 条码扫描仪信息 http www barcodedatalink com pages product details php p 108 我想知道它的配对状态 是否与设备连接 void centralManager
  • Django 使用 ManytoMany 作为外键

    我正在尝试使用多对多关系作为另一个表的外键 但我不确定这是否可能 考虑以下模型 from django db import models class Attribute models Model name models CharField
  • 通过类的java sql连接

    我有以下代码 import java sql import java net public class binsz public void dbConnect String db connect string String username
  • 带数据触发器的 WPF 动画

    我有一个矩形 我正在为其背景颜色设置动画 每次特定数字上升时 它都应该变为绿色 下跌时呈红色 如果数字一段时间内没有变化 它会慢慢淡回默认颜色 因此 动画非常快速地将背景从灰色变为红色 然后需要几秒钟的时间才能淡出回灰色 我已添加为 Dat
  • 如何在 Xcode 4 中从断点操作打印字符串值?

    我有一个断点操作 并且正在使用下拉列表中的 日志 选项 我想打印出字符串 摘要 值 我正在这样做 the person name is p name 但这会打印内存地址 我可以切换到调试器命令选项并执行以下操作 po f name 但后来我
  • 如何创建不安全的 jupyter 服务器

    Jupyter 只允许从本地主机访问 除非我做了一些额外的安全工作 我正在运行我的服务器 以便它只能在本地网络上访问 任何有权访问的人都与本地主机具有相同的可信度 如何设置没有额外安全功能的 jupyter 笔记本服务器 根据您的问题 我希