PermissionError: [Errno 13] В доступе отказано: невозможно открыть Jupyter в браузере, несмотря на то, что он работает правильно на экземпляре AWS EC2 - PullRequest
1 голос
/ 26 апреля 2019

Я уже настроил экземпляр EC2 на AWS (ubuntu, eu-central-1b). Порт 8888 (пользовательское правило tcp), https 443 и ssh 22 открыт в AWS (где угодно). Мне известны темы chmod 400 key.pem и jupyter_notebook_config.py. Он также успешно настроен на Anaconda3-5x и Jupyter на экземпляре EC2. НО: я не могу получить доступ к серверу Jupyter в моем браузере (Firefox и Safari). При запуске ноутбука Jupyter после входа в экземпляр EC2 я получаю сообщение об ошибке PermissionError: [Errno 13] Permission denied. В браузере я просто получаю сообщение об ошибке превышения времени ожидания соединения.

Я следовал почти всем учебникам, таким как:

https://chrisalbon.com/aws/basics/run_project_jupyter_on_amazon_ec2/ или же https://github.com/mGalarnyk/Installations_Mac_Ubuntu_Windows/tree/master/AWS

Я попробовал это пару раз, завершил работу экземпляра EC2 и снова все настроил. Но я не могу подключиться к серверу Jupyter через браузер.

Точное сообщение об ошибке выглядит так, когда я пытаюсь подключиться / ввести URL в браузере:

(base) ubuntu@ip-172-31-34-13:~$ jupyter notebook [I 15:44:20.930 NotebookApp] JupyterLab extension loaded from /home/ubuntu/anaconda3/lib/python3.7/site-packages/jupyterlab
[I 15:44:20.930 NotebookApp] JupyterLab application directory is /home/ubuntu/anaconda3/share/jupyter/lab
[I 15:44:20.934 NotebookApp] Serving notebooks from local directory: /home/ubuntu
[I 15:44:20.934 NotebookApp] The Jupyter Notebook is running at:
[I 15:44:20.934 NotebookApp] https://(ip-172-31-34-13 or 127.0.0.1):8888/
[I 15:44:20.934 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
Exception in callback BaseAsyncIOLoop._handle_events(6, 1)
handle: <Handle BaseAsyncIOLoop._handle_events(6, 1)>
Traceback (most recent call last):
  File "/home/ubuntu/anaconda3/lib/python3.7/asyncio/events.py", line 88, in _run
    self._context.run(self._callback, *self._args)
  File "/home/ubuntu/anaconda3/lib/python3.7/site-packages/tornado/platform/asyncio.py", line 122, in _handle_events
    handler_func(fileobj, events)
  File "/home/ubuntu/anaconda3/lib/python3.7/site-packages/tornado/s**tack_context.py", line 300, in null_wrapper
    return fn(*args, **kwargs)
  File "/home/ubuntu/anaconda3/lib/python3.7/site-packages/tornado/netutil.py", line 262, in accept_handler
    callback(connection, address)
  File "/home/ubuntu/anaconda3/lib/python3.7/site-packages/tornado/tcpserver.py", line 263, in _handle_connection
    do_handshake_on_connect=False)
  File "/home/ubuntu/anaconda3/lib/python3.7/site-packages/tornado/netutil.py", line 565, in ssl_wrap_socket
    context = ssl_options_to_context(ssl_options)
  File "/home/ubuntu/anaconda3/lib/python3.7/site-packages/tornado/netutil.py", line 540, in ssl_options_to_context
    context.load_cert_chain(ssl_options['certfile'], ssl_options.get('keyfile', None))**

Нет никакой разницы, когда я использую 'https://(AWS Public DNS): 8888 или' https://(AWS IPv4 Public IP): 8888 '

Я пробовал даже другой порт (8889) и все в таком духе.

И в качестве информации, как выглядит мой notebook_config:

c = get_config()

c.IPKernelApp.pylab = 'inline'
c.NotebookApp.certfile = u'/home/ubuntu/certs/mycert.pem'
c.NotebookApp.ip = '*'
c.NotebookApp.open_browser = False
c.NotebookApp.password = u'sha1:xxxxx'
c.NotebookApp.port = 8888

Все в основном настроено так, как показано в уроках. Я попробовал, даже если они показали официальные данные на AWS: https://docs.aws.amazon.com/dlami/latest/devguide/setup-jupyter-config.html

1 Ответ

1 голос
/ 26 апреля 2019

Это может быть ошибка прав доступа с файлом cert.pem. Предполагая, что каталог является правильным для mycert.pem, как указано в вашем файле notebook_config, из терминала, подключенного по SSH к экземпляру EC2, вы можете использовать следующую команду:

sudo chown $USER:$USER /home/ubuntu/certs/mycert.pem

Возможные дубликаты этого вопроса: Проблема с сертификатами Jupyter

...