Одним из преимуществ входа на сервер с переадресацией портов является облегчение использования Jupyter Notebook. Эта ссылка дает отличное описание того, как это сделать. Здесь я хотел бы сделать некоторые выводы и дополнения для всех вас, ребята.
Ситуация 1. Войдите с локального компьютера с именем Host-A (например, с вашего собственного ноутбука) на удаленный рабочий компьютер с именем Host-B.
ssh user@Host-B -L port_A:localhost:port_B
jupyter notebook --NotebookApp.token='' --no-browser --port=port_B
Затем вы можете открыть браузер и ввести: http: // localhost: port_A /, чтобы выполнять свою работу на Host-B, но видеть его в Host-A.
Ситуация 2. Войдите с локального компьютера с именем Host-A (например, с вашего собственного ноутбука) на удаленный компьютер с именем Host-B и оттуда войдите на удаленный рабочий компьютер с именем Host-C. Обычно это характерно для большинства аналитических серверов в университетах и может быть достигнуто с помощью двух ssh -L
связанных с -t
.
ssh -L port_A:localhost:port_B user@Host-B -t ssh -L port_B:localhost:port_C user@Host-C
jupyter notebook --NotebookApp.token='' --no-browser --port=port_C
Затем вы можете открыть браузер и ввести: http: // localhost: port_A /, чтобы выполнять свою работу на Host-C, но видеть это в Host-A.
Ситуация 3. Войдите с локального компьютера с именем Host-A (например, с вашего собственного ноутбука) на удаленный компьютер с именем Host-B и оттуда войдите на удаленный рабочий компьютер с именем Host-C и, наконец, войдите на удаленный рабочий компьютер Host- D. Обычно это не так, но когда-нибудь может случиться. Это продолжение ситуации 2, и ту же логику можно применить на большем количестве машин.
ssh -L port_A:localhost:port_B user@Host-B -t ssh -L port_B:localhost:port_C user@Host-C -t ssh -L port_C:localhost:port_D user@Host-D
jupyter notebook --NotebookApp.token='' --no-browser --port=port_D
Затем вы можете открыть браузер и ввести: http: // localhost: port_A /, чтобы выполнять свою работу на Host-D, но видеть это в Host-A.
Обратите внимание, что port_A, port_B, port_C, port_D могут быть случайными числами, кроме общих номеров портов, перечисленных здесь . В Ситуации 1 port_A и port_B могут быть одинаковыми для упрощения процедуры.