Jupyter erlaubt nur den Zugriff von localhost, wenn ich nicht eine Menge zusätzlicher Sicherheitsausrüstung mache. Ich führe meinen Server so aus, dass er nur in einem lokalen Netzwerk zugänglich ist, in dem jeder mit Zugriff in Bezug auf die Vertrauenswürdigkeit zu localhost gleich ist. Wie richte ich einen Jupyter-Notebook-Server ohne zusätzliche Sicherheitsfunktionen ein?Wie erstellt man einen unsicheren Jupyter-Server
Antwort
Basierend auf Ihre Frage, ich erwarte, dass Sie diese Konfiguration wollen (in ~/.jupyter/jupyter_notebook_config.py
):
c.NotebookApp.ip = '0.0.0.0' # listen on all IPs
c.NotebookApp.token = '' # disable authentication
Es gibt ein paar Sicherheitsfunktionen in Jupyter sind (Stand 4.3.1). Ich gehe über, wie jeder zu deaktivieren, und ob/wann es sinnvoll, sie zu deaktivieren macht:
Es nur auf localhost hört. Dies kann auf alle öffentlichen IP-Adressen geändert werden:
c.NotebookApp.ip = '0.0.0.0'
Zuhören auf dem öffentlichen IP-Adressen im Allgemeinen mit der Aktivierung von HTTPS und/oder Passwort oder Token-Authentifizierung (docs) kommen sollten. Wenn es intern in einem vertrauenswürdigen Netzwerk ist, in dem nichts Schlimmes passiert, können Sie weitere Sicherheitsfunktionen deaktivieren:
Die Token-Authentifizierung ist standardmäßig aktiviert. Um es zu deaktivieren:
Deaktivieren der Authentifizierung bedeutet, dass jeder mit Zugriff auf den Host Code ausführen kann. Es scheint so, als ob du das willst. Sie können auch enable a password:
In [1]: from notebook.auth import passwd In [2]: passwd() Enter password: Verify password: Out[2]: 'sha1:67c9e60bb8b6:9ffede0825894254b2e042ea597d771089e11aed'
du in
c.NotebookApp.password
speichern kann.Jupyter hat auch CORS Schutz, um zu verhindern, dass andere Websites auf diesen Server zugreifen können. Das heißt, wenn ein Benutzer in Ihrem Netzwerk
example.com
besucht, kann JavaScript auf dieser Seite keinen Code auf Ihrem Notebook-Server ausführen. Es klingt wie Sie tun nicht wollen, dass diese berühren, aber wenn Sie einen Dienst ausführen, der das Notebook-Server zugreifen können sollten, können Sie es hinzufügen:c.NotebookApp.allow_origin = 'https://your.other.host'
Schließlich Jupyter 4.3. 1 führt ein xsrf-Token ein, das Teil der oben genannten Kategorie der Cross-Site-Ausführung ist. Sie nicht müssen dies berühren, wenn Benutzer nur auf den Server direkt zugreifen, anstatt über Javascript auf zusätzlichen Websites.
c.NotebookApp.disable_check_xsrf = True
A völlig unsicher Notebook-Server, die man zu sagen ist, wo jeder Website-Code darauf laufen kann, solange ein Browser zu seinem Host verbinden kann (dies würde localhost oder LAN gehören, wenn der Browser läuft aus dem Inneren des 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
Diese wünschenswert sein könnte, wenn Sie aber wollen, um Rechenressourcen frei für die Welt machen verwenden sie über das Notebook API möchten.
- 1. Wie erstellt man einen DataAccessLayer?
- 2. Wie erstellt man einen Systemwiederherstellungspunkt?
- 3. Android: Wie erstellt man einen Videoplayer?
- 4. Wie erstellt man einen flächendeckenden radialen Farbverlauf?
- 5. Wie man einen Typedef für Funktionszeiger erstellt
- 6. Wie man einen String [] neu erstellt?
- 7. Wie erstellt man einen Baum in C++?
- 8. Wie man einen OCaml Cross Compiler erstellt
- 9. Apache Spark: wie man einen Zähler erstellt
- 10. Wie erstellt man einen AlertDialog mit Reflektion?
- 11. Wie man einen zunderartigen wischbaren Kartenstapel erstellt
- 12. Wie erstellt man einen speziellen 'Kombinieren' Enumerator
- 13. Wie erstellt man einen Webslice in IE8?
- 14. Wie erstellt man einen Assistentenbildschirm mit struts2?
- 15. Wie erstellt man einen gepunkteten Tag?
- 16. Wie erstellt man einen String mit Wagenrücklauf?
- 17. Wie erstellt man einen booleschen Wert?
- 18. Wie erstellt man einen Dialog mit VbScript?
- 19. Jenkins - wie man einen bestimmten Zweig erstellt
- 20. Wie erstellt man einen Screenshot von QWidget?
- 21. Wie erstellt man einen Baum in PHP?
- 22. Wie erstellt man einen ausblendbaren Intro-Bildschirm?
- 23. Wie erstellt man einen Unix-Domain-Socket?
- 24. Wie erstellt man einen Bereich für current_user.following?
- 25. Wie erstellt man einen CFuncType in Python
- 26. Wie erstellt man einen HTML-Parser?
- 27. Wie erstellt man einen Systemwiederherstellungspunkt programmatisch?
- 28. Wie erstellt man einen Web-Datei-Browser?
- 29. Wie erstellt man einen Gradientenrahmen von UIView?
- 30. Wie erstellt man einen transparenten Kreis?
In der Tat, ich brauchte nur 1) und 2), aber das ist eine wunderbare Erklärung der Jupyter Notebook Sicherheitsfunktionen. Vielen Dank! – Scott