Мой рабочий стол - это мощная машина, которую я использую для исследовательского анализа данных и других рабочих процессов машинного обучения.
В этом посте я расскажу, как я подключаюсь к своей рабочей машине и запускаю рабочие нагрузки Jupyter Notebook, когда я работаю удаленно.
SSH на удаленную машину
Шаг 1: подключитесь к удаленному компьютеру по ssh и запустите Jupyter Notebook
на локальный порт с параметром --no-browser
.
user@local_machine$ ssh user@remote_machine
user@remote_machine$ jupyter notebook --no-browser --port=8889
Настройка SSH-туннеля
Шаг 2 - настроить SSH-туннель от вашего локального компьютера к port 8889
на удаленном компьютере, на котором обслуживается Jupyter Notebook
.
user@local_machine$ ssh -N -L localhost:8888:localhost:8889 user@remote_mahcine
Вот разбивка параметров ssh
- -N Не выполнять удаленную команду. Это полезно только для переадресации портов.
- -L local_socket: remote_socket
Указывает, что подключения к данному TCP-порту или сокету Unix на локальном (клиентском) хосте должны быть перенаправлены на данный хост и порт или сокет Unix на удаленной стороне. Это работает путем выделения сокета для прослушивания либо TCP-порта на локальной стороне, необязательно привязанного к указанному bind_address, либо к сокету Unix. Всякий раз, когда выполняется соединение с локальным портом или сокетом, соединение пересылается по защищенному каналу, и с удаленного компьютера устанавливается соединение либо с хост-портом hostport, либо с Unix-сокетом remote_socket. - Перенаправление портов также можно указать в файле конфигурации. Только суперпользователь может пересылать привилегированные порты. Адреса IPv6 можно указать, заключив адрес в квадратные скобки.
- По умолчанию локальный порт привязан в соответствии с настройкой GatewayPorts. Однако явный bind_address может использоваться для привязки соединения к определенному адресу. Bind_address «localhost» указывает, что порт прослушивания должен быть привязан только для локального использования, в то время как пустой адрес или «*» указывает, что порт должен быть доступен для всех интерфейсов.
Обратите внимание, что запуск SSH-туннеля с -N
не будет регистрировать никакие выходные данные, пока вы не получите сообщение об ошибке, это означает, что вы установили туннель.
Загрузите Jupyter Notebook в локальный браузер
На локальном компьютере браузер загрузит localhost:8888
, а Jupyter Notebook
с удаленного компьютера загрузится должным образом.