#ssh #ipython #spyder
Вопрос:
Я настроил удаленное ядро, работающее по SSH, к которому я подключаюсь с помощью своей IDE Spyder, и только что добавил 2-факторную аутентификацию (2FA) для соединений SSH с использованием Duo .
Теперь, когда я пытаюсь подключиться, я получаю 4 разных push-уведомления, и как только я одобряю некоторые или все из них, Spyder подключается и выдает мне приглашение IPython; и для каждой попытки ниже я одобрил все 4.
При моей первой попытке он не показал результата при тестировании с чем-то вроде 2 2
моей второй попытки, все, казалось, работало нормально.
Тем не менее, я знаю, что задействовано 5 каналов (оболочка, iopub, hb, stdin, управление), как я вижу на этой странице документа клиента Jupyter.
Могу ли я каким-либо образом, подключившись к удаленному ядру, протестировать каждый из 5 отдельных каналов и проверить, все ли они работают должным образом?
И можете ли вы придумать причину, по которой я получал бы 4 push-уведомления, а не 5? Возможно ли, что один из каналов не используется или не подключен к более позднему запросу или что-то в этом роде?
ОБНОВЛЕНИЕ: После выполнения a netstat
на стороне сервера я вижу, что канал управления не подключен, но остальные четыре (оболочка, iopub, hb, stdin) подключены. Все еще не уверен, что я упускаю из виду, не используя канал управления, и предоставляет ли Spyder те же функции, что и канал управления другими способами; на этой странице говорится:
Управление: Этот канал идентичен оболочке, но работает на отдельном сокете, чтобы избежать очереди за запросами на выполнение. Канал управления используется для сообщений о завершении работы и перезапуске, а также для сообщений об отладке.
Для более удобного взаимодействия с пользователем мы рекомендуем запускать канал управления в отдельном потоке от канала оболочки, чтобы, например, сообщения о завершении работы или отладке можно было обрабатывать немедленно, не дожидаясь завершения обработки продолжительного сообщения оболочки (например, дорогостоящего запроса на выполнение).
Комментарии:
1. Как вы настроили удаленное ядро ? remote_ikernel, корпоративный шлюз или пользовательский ? Скорее всего, это сложный ответ, который может быть лучше на дискуссионном форуме, или проблема. Возможно, вам захочется включить ведение журнала отладки, чтобы узнать, когда установлены соединения. Я полагаю, что вы должны иметь возможность передавать 5 соединений через один ssh-порт вперед.
2. Я не уверен в вопросе ядра, с которым я связываюсь
ipython kernel --ConnectionFileMixin.connection_file=C:/myConnection.json --InteractiveShellApp.exec_files=C:/myscript.py
. Я только что сделал netstat на стороне сервера и заметил, что это канал управления , который не подключен; не уверен, какие функции я пропускаю из-за этого. И еще одна загадка-сможет ли Spyder обрабатывать 5 соединений, проходящих через один ssh-порт вперед? это может быть жестко запрограммировано таким образом. Не могли бы вы порекомендовать конкретный форум, на котором можно задать этот вопрос? Спасибо!3. Так ты сам настроил SSH ? Потому что лучшим способом настройки через ssh-соединение было бы pypi.org/project/remote_ikernel или займитесь адаптацией pypi.org/project/jupyter-enterprise-gateway Который тестируется на удаленное подключение, но обычно выполняется для сервера notebook_server. Я бы как на discourse.jupyter.org или даже в системе отслеживания проблем spyder, если у них есть поддержка корпоративного шлюза или удаленных ядер.