Подключиться к Jupyter Server по SSH из локальной IDE или терминала
Distributed Train позволяет работать по SSH с Jupyter Server или исполняемой в регионе задачей из:
-
локального терминала;
-
Visual Studio Code;
-
PyCharm.
Подключение по SSH позволяет проводить удаленную отладку.
Скачать SSH ключ и настроить права доступа к нему
Для подключения:
-
Напротив Jupyter Server, к которому предполагается подключение, перейти в меню
, выберите SSH.
-
(Опционально) При первом подключении по SSH появится предупреждение о неизвестном хосте. Введите в терминале слово «yes» и нажмите Enter.
Обратите внимание, что менеджер ключей SSH-agent запоминает SSH-ключи, которые ранее вводил пользователь и при попытке повторного подключения может использовать не тот ключ. Поэтому для UNIX-подобных операционных систем рекомендуем перед подключением по SSH выполнить в терминале команду killall ssh-agent.
-
В диалоговом окне Подключение по SSH нажмите Скачать приватный ключ. Ключ сохранится в указанный при сохранении каталог.
ПримечаниеНет необходимости скачивать приватный ключ для каждого Jupyter Server. Ключ выдается на пользователя.
-
Скопируйте команду и выполните ее в терминале, предварительно заменив значения на свои:
ssh test-name.ai0001011-00055@ssh-jupyter.ai.cloud.ru -p 2222 -i <path/to/private_id_rsa_key>Где:
-
test-name — название Jupyter Server;
-
ai0001011-11111 — автоматически генерируемый параметр;
-
<path/to/private_id_rsa_key> — путь к приватному ключу на локальной машине.
-
Если вы работаете на OC Windows, то при копировании пути слеши удалятся. Поэтому необходимо вручную добавить обратные слеши \ в путь.
При возникновении проблем с подключением, рекомендуем к параметрам SSH добавить:
-o HostkeyAlgorithms=+ssh-rsa -o PubkeyAcceptedKeyTypes=+ssh-rsa
Команда для подключения по SSH будет выглядеть так:
ssh -o HostkeyAlgorithms=+ssh-rsa -o PubkeyAcceptedKeyTypes=+ssh-rsa buckets.ai0001011-11111@ssh-sr002-jupyter.ai.cloud.ru -p 2222 -i <path/to/private_id_rsa_key.txt>
killall ssh-agent
Изменение прав доступа к файлу с приватным ключом
Рекомендуется изменить права доступа к файлу с приватным ключом, ограничив их возможностью чтения и записи файла только для владельца.
Команды ниже позволят настроить права так, что читать и записывать файл ключа сможет только владелец, а другие пользователи не будут иметь доступ к ключу. Благодаря этому неавторизованный доступ или случайное изменение приватного ключа становятся невозможны, сохраняется его безопасность и целостность.
В терминале локальной машины выполните команду:
chmod 600 <path/to/key>
Удаленная отладка Jupyter Server по SSH с помощью Visual Studio Code
Для удаленной отладки через Visual Studio Code:
-
Установите в Visual Studio Code расширение Remote Development.
-
В Visual Studio Code нажмите F1 и найдите «Add New SSH Host…».
-
Выберите конфигурационный файл, например path/to/private_id_rsa_key.txt, и в пункте Remote-SSH: Connect to Host… введите:
ssh name.ai0001011-00560@ssh-jupyter.ai.cloud.ru -p 2222 -i path/to/private_id_rsa_key.txtВ процессе подключения выберите операционную систему Linux.
Если при подключении возникает ошибка, которая указывает на некорректный путь, то в конфигурационном файле для SSH проверьте путь к ключевому файлу. Путь должен иметь вид — path/to/private_id_rsa_key.txt.
Если требуется подключиться по SSH к Jupyter Server нескольким пользователям одного воркспейса, то воспользуйтесь инструкцией.
-
(Опционально) После подключения установите на удаленный хост расширение pylance.
-
Выберите python-интерпретатор. У разных пользователя путь до python-интерпретатора может отличаться. VSCode подскажет рекомендацию в выпадающем списке. Подробности в инструкции.
Подключиться к Jupyter Server по SSH нескольким пользователям одного воркспейса с помощью Visual Studio Code
При подключении разных пользователей к Jupyter Server в одном воркспейсе конфигурационные файлы SSH попадают в один каталог и перезаписывают друг друга. Из-за этого возникает проблема при подключении разных пользователей по SSH.
-
Запустите Visual Studio Code.
-
Нажмите F1 и выберите Connect to Host....
Откроется выпадающий список хостов.
Запомните хост, для которого хотите настроить vscode-server.
-
Нажмите Ctrl + Shift + P и выберите Open User Settings (JSON).
-
Добавьте кастомный путь в следующем формате:
"remote.SSH.serverInstallPath": {"<host>": "/test/location"} -
Укажите требуемый хост из шага 2:
"remote.SSH.serverInstallPath": {"sr002": "/home/jovyan/.my-very-own-vscode-server"} -
Подключитесь к требуемому Jupyter Server по SSH.
По указанному пути будет установлен vscode-server.
Подключиться по SSH, используя PyCharm
-
Добавьте SSH private key к SSH-agent, выполнив команду:
ssh-add ./mlspace.private_keyГде ./mlspace.private_key — путь до скачанного файла.
-
Выполнить SSH-подключение к Jupyter Server для проверки работоспособности задачи с помощью команды:
ssh <username>@<Адрес> -p 2222 -
Настройте удаленный интерпретатор Python в соответствии с инструкцией PyCharm .
-
Включите Python Debug Server (например, порт 7777) по инструкции PyCharm.
-
Подключитесь к Python Debug Server удаленно со стороны Jupyter Server, выполнив одно из условий:
-
получите статический IP-адрес для вашего подключения;
-
используйте утилиту ngrok. Если сайт ngrok недоступен, воспользуйтесь VPN.
ПримечаниеПри отладке использована утилита ngrok tcp 7777. В результате выводится адрес, по которому можно обращаться (например, tcp://2.tcp.ngrok.io:17999)
-
-
Установите в Jupyter Server библиотеку pydevd-pycharm с помощью следующей команды:
pip install pydevd-pycharm~=<version of PyCharm on the local machine>
- Скачать SSH ключ и настроить права доступа к нему
- Удаленная отладка Jupyter Server по SSH с помощью Visual Studio Code
- Подключиться к Jupyter Server по SSH нескольким пользователям одного воркспейса с помощью Visual Studio Code
- Подключиться по SSH, используя PyCharm