PermissionError: [Errno 13] В доступе к aws ec2 отказано - PullRequest
0 голосов
/ 01 ноября 2018

У меня Ubuntu 16.04 работает на виртуальной коробке (на Mac), а на AWS EC2 Ubuntu 18.04 работает. Я пытаюсь запустить блокнот Jupiter на aws.ec2 и пытаюсь получить к нему удаленный доступ через мой веб-браузер на моей локальной Ubuntu. Я могу получить доступ к удаленному терминалу Ubuntu (aws.ec2). После того, как я следовал инструкциям по этой ссылке

Я получил следующую ошибку на шаге 9.

Я переустанавливал все с нуля 3 раза (включая локальный экземпляр Ubuntu и aws ec2), но пока никакого прогресса.

Last login: Thu Nov  1 06:34:07 2018 from 134.1****
ubuntu@ip-172-***:~$ export XDG_RUNTIME_DIR=""
ubuntu@ip-172-***:~$ jupyter notebook
[I 06:40:19.525 NotebookApp] Serving notebooks from local directory: /home/ubuntu
[I 06:40:19.528 NotebookApp] The Jupyter Notebook is running at:
[I 06:40:19.528 NotebookApp] https:// **** :8888/?token=727fbb120d19f55a435c1*****
[I 06:40:19.528 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
[C 06:40:19.529 NotebookApp]

    Copy/paste this URL into your browser when you connect for the first time,
    to login with a token:
        https://(ip-172-31-***** .0.1):8888/?token=727fbb120d19f55a435c14*********
ERROR:asyncio:Exception in callback BaseAsyncIOLoop._handle_events(4, 1)
handle: <Handle BaseAsyncIOLoop._handle_events(4, 1)>
Traceback (most recent call last):
  File "/usr/lib/python3.6/asyncio/events.py", line 145, in _run
    self._callback(*self._args)
  File "/home/ubuntu/.local/lib/python3.6/site-packages/tornado/platform/asyncio.py", line 122, in _handle_events
    handler_func(fileobj, events)
  File "/home/ubuntu/.local/lib/python3.6/site-packages/tornado/stack_context.py", line 300, in null_wrapper
    return fn(*args, **kwargs)
  File "/home/ubuntu/.local/lib/python3.6/site-packages/tornado/netutil.py", line 262, in accept_handler
    callback(connection, address)
  File "/home/ubuntu/.local/lib/python3.6/site-packages/tornado/tcpserver.py", line 263, in _handle_connection
    do_handshake_on_connect=False)
  File "/home/ubuntu/.local/lib/python3.6/site-packages/tornado/netutil.py", line 565, in ssl_wrap_socket
    context = ssl_options_to_context(ssl_options)
  File "/home/ubuntu/.local/lib/python3.6/site-packages/tornado/netutil.py", line 540, in ssl_options_to_context
    context.load_cert_chain(ssl_options['certfile'], ssl_options.get('keyfile', None))
PermissionError: [Errno 13] Permission denied
ERROR:asyncio:Exception in callback BaseAsyncIOLoop._handle_events(4, 1)
handle: <Handle BaseAsyncIOLoop._handle_events(4, 1)>
Traceback (most recent call last):
  File "/usr/lib/python3.6/asyncio/events.py", line 145, in _run
    self._callback(*self._args)
  File "/home/ubuntu/.local/lib/python3.6/site-packages/tornado/platform/asyncio.py", line 122, in _handle_events
    handler_func(fileobj, events)
  File "/home/ubuntu/.local/lib/python3.6/site-packages/tornado/stack_context.py", line 300, in null_wrapper
    return fn(*args, **kwargs)
  File "/home/ubuntu/.local/lib/python3.6/site-packages/tornado/netutil.py", line 262, in accept_handler
    callback(connection, address)
  File "/home/ubuntu/.local/lib/python3.6/site-packages/tornado/tcpserver.py", line 263, in _handle_connection
    do_handshake_on_connect=False)
  File "/home/ubuntu/.local/lib/python3.6/site-packages/tornado/netutil.py", line 565, in ssl_wrap_socket
    context = ssl_options_to_context(ssl_options)
  File "/home/ubuntu/.local/lib/python3.6/site-packages/tornado/netutil.py", line 540, in ssl_options_to_context
    context.load_cert_chain(ssl_options['certfile'], ssl_options.get('keyfile', None))
PermissionError: [Errno 13] Permission denied

Примечание 1: в экземпляре ec2, Ubuntu имеет версию 18.04, и она поставляется с python 3.6.3, затем я должен установить anaconda поверх него, а затем версия python теперь 3.5.2, как только я набрал $ python3.

Примечание 2: Несмотря на то, что после установки anaconda в EC2, версия python ухудшилась до 3.5.2

как только я проверил следующую директорию / usr / local / lib / там только папка python3.6 существует, тогда я набрал $ sudo chmod 777 dist-packages /

затем $ jupyter notebook, затем скопируйте ссылку токена и объедините с dns, но все равно не сработало.

Ответы [ 2 ]

0 голосов
/ 06 мая 2019

Я столкнулся с этой проблемой именно так, как указано, и нашел решение этой проблемы.

вам нужно проверить файл сертификата и проверить, принадлежит ли он руту.

вам просто нужно сменить владельца на пользователя jupyter, чьи учетные данные используются, и ноутбук будет работать нормально

меняется с

(base) santoshshds@dsserver:~/certs$ ls -lrth
total 4.0K
-rw------- 1 root root 2.0K May  5 10:02 mycert.pem

до

(base) santoshshds@dsserver:~/certs$ ls -lrth
total 4.0K
-rw------- 1 santoshshds root 2.0K May  5 10:02 mycert.pem

и теперь юпитер работает нормально

####################################################################
[I 06:58:40.180 NotebookApp] https://(dsserver or 127.0.0.1):8888/

[I 06:58:40.180 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).

[W 06:58:45.487 NotebookApp] error on read: [SSL: SSLV3_ALERT_BAD_CERTIFICATE] sslv3 alert bad certificate (_ssl.c:2488)

[W 06:58:45.499 NotebookApp] error on read: [SSL: SSLV3_ALERT_BAD_CERTIFICATE] sslv3 alert bad certificate (_ssl.c:2488)

[W 06:58:45.750 NotebookApp] error on read: [SSL: SSLV3_ALERT_BAD_CERTIFICATE] sslv3 alert bad certificate (_ssl.c:2488)

[I 06:58:54.468 NotebookApp] 302 GET / (x.x.x.x) 0.63ms

[I 06:58:54.785 NotebookApp] 302 GET /tree? (x.x.x.x) 0.81ms

[W 07:14:58.719 NotebookApp] Not allowing login redirect to '/tree?'

[I 07:14:58.720 NotebookApp] 302 POST /login?next=%2Ftree%3F (x.x.x.x) 1.62ms

[I 07:14:59.047 NotebookApp] 302 GET / (x.x.x.x) 0.65ms

где (x.x.x.x) ip браузера

0 голосов
/ 13 декабря 2018

Заданный порт 8888 должен быть включен в группы безопасности входящих. Решено benai в этом форуме: https://forums.fast.ai/t/can-t-connect-to-jupyter-notebook-tried-3-different-machines-err-connection-timed-out/3779

Вот пошаговая инструкция: «

  1. Нажмите «Экземпляры» (в разделе «Экземпляры») на левой боковой панели.

  2. Выберите ваш экземпляр (поле слева от «Имя» и «Идентификатор экземпляра» должно стать синим, и в нижней части страницы будет отображаться набор информации. Эта информация будет включать теги, говорящие «Описание», «Проверка состояния», «Мониторинг» и «Теги»)

  3. Если вы нажмете «Описание», вы увидите отображаемую информацию. Рядом с «Группы безопасности» я вижу следующее, показанное синим цветом: «launch-wizard-10. просмотреть входящие правила »

  4. Нажмите на «Просмотреть правила входа», и я вижу маленькое всплывающее окно, которое дает: Источник протокола портов Launch-wizard-10 22 tcp 0.0.0.0/0 Это означает, что только входящий порт 22 открыт для входящей информации.

  5. Далее нажмите «Группы безопасности» (в разделе «Сеть и безопасность») на левой панели. Я определил, какая из групп безопасности в списке соответствует моему работающему экземпляру, заглянув под «Описание», чтобы увидеть группу с сегодняшней датой (например, «launch-wizard-10 создан 2017-06-29»).

  6. Я выбрал этот флажок в левом окошке (поле стало синим). Информация появилась в нижней части страницы, включая теги «Описание», «Входящий», «Исходящий» и «Теги». Нажмите на тег «Входящий».

  7. В моем случае я видел только: «SSH TCP 22 0.0.0.0/0» Нажмите «Редактировать». Нажмите «Добавить правило», и появится новая строка. Введите «8888» в «Port Range» и в «Source» выберите «Anywhere», что должно изменить значение на «0.0.0.0/0, :: / 0». Нажмите «Сохранить».

  8. Теперь в нижней части страницы должно отображаться следующее: Пользовательское правило TCP TCP 8888 0.0.0.0/0

"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...