- tocdepth
2
Подключиться к Jupyter Server по SSH из локальной IDE или терминала
ML Space позволяет работать по SSH с Jupyter Server или исполняемой в регионе задачей из:
локального терминала;
Visual Studio Code;
PyCharm.
Подключение по SSH позволяет проводить удаленную отладку.
Скачать SSH ключ и настроить права доступа к нему
Для подключения:
Напротив Jupyter Server, к которому предполагается подключение, перейти в меню , выберите SSH.
(Опционально) При первом подключении по SSH появится предупреждение о неизвестном хосте. Введите в терминале слово «yes» и нажмите Enter. Обратите внимание на то, что менеджер ключей SSH-agent запоминает SSH-ключи, которые ранее вводил пользователь, и при попытке повторного подключения может использовать не тот ключ. Поэтому рекомендуем перед подключением по SSH выполнить в терминале команду (актуально для unix-подобных операционных систем):
В диалоговом окне Подключение по 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 tcp 7777
. В результате выводится адрес, по которому можно обращаться (например,tcp://2.tcp.ngrok.io:17999
)Установите в Jupyter Server библиотеку pydevd-pycharm с помощью следующей команды:
pip install pydevd-pycharm~=<version of PyCharm on the local machine>
для Dev & Test