Введение
Это первая часть руководства по настройке удалённого рабочего процесса. Цель – помочь быстро начать работу на сервере, используя один из удобных и проверенных способов. Мы пройдем путь от выдачи логинов до первого запуска Jupyter Lab, при этом будем опираться только на несколько базовых команд. Предполагается, что вы используете R или Python в качестве языков программирования для анализа данных.
Инструкция рассчитана на пользователей macOS, Linux и Windows WSL. Всё, что вам нужно, — стандартный терминал и установленный OpenSSH-клиент.
Мотивация
Работа с данными, в том числе астрономическими, гораздо удобнее на удалённом сервере, чем на локальном компьютере по многим причинам:
Мобильность. Подключайтесь с любого устройства - планшета, ноутбука или телефона.
Производительность. Серверы часто имеют сотни гигабайт ОЗУ, множество ядер и производительные GPU.
Большие данные. Нет необходимости переносить большие файлы на локальную машину.
Экономия батареи. Вычисления выполняются на сервере, а не на вашем ноутбуке, что особенно удобно в дороге.
Долгосрочные задачи. Можно запускать задачи, которые будут работать неделями или месяцами, не беспокоясь, что компьютер придётся выключить.
Поддержка. Сервер обслуживается администратором: бэкапы, обновления, безопасность.
Подключение по SSH через прокси
Скорее всего сервер компании будет недоступен напрямую извне в целях безопасности. Обычно доступ к корпоративному серверу организован через VPN или прокси. Здесь мы рассмотрим схему с прокси. Схематично оно выглядит так:

Сперва необходимо получить логин и пароль от прокси-сервера и от основного сервера. Попросите их у администратора сервера или у ИТ службы поддержки. Предположим:
- Прокси
108.177.126.0
- Основной сервер
11.6.3.10
- Пользователь
bob
Для подключения к прокси серверу необходимо ввести команду, а затем и пароль:
ssh bob@108.177.126.0
Если всё получилось, то сейчас сессия открыта на прокси.
Используйте команду-проверку hostname
, чтобы убедиться, что вы действительно попали на нужный хост
Теперь мы можем зайти на основной сервер, аналогично вводим команду, а затем пароль:
ssh bob@11.6.3.10
Теперь вы на основном сервере и готовы к дальнейшей настройке. Чтобы вернуться обратно на прокси, используйте команду exit
- она закроет текущую сессию. Можем начинать настраивать рабочее окружение, но сперва сделаем процесс входа на сервер более удобным.
Упрощённая авторизация
Чтобы не вводить пароль от каждого сервера (основного и прокси), настроим автоматический ProxyJump и вход по ключу.
Автоматический вход через прокси-сервер
На локальной машине откройте файл ~/.ssh/config
в любом текстовом редакторе, а если файла нет, то создайте его. Допустим, у нас несколько основных серверов, у которых IP-адреса 11.6.3.10
, 11.6.3.11
и т.п., прокси сервер имеет адрес 108.177.126.0
, а имя пользователя bob. Тогда введем в этот файл:
Host 11.6.3.*
User bob
ProxyJump 108.177.126.0
Теперь достаточно ввести:
ssh 11.6.3.10
— и подключение пойдёт через прокси. По-прежнему потребуется ввод паролей, поэтому настроим вход по ключу.
Вход по SSH-ключу
Сгенерируем ssh-ключ на локальной машине:
ssh-keygen -t rsa
Рекомендуется использовать более современный алгоритм генерации ключа Ed25519, вместо RSA, так как он короче, быстрее генерируется и даёт такую же или более высокую криптостойкость при меньшем размере ключа. Пример:
ssh-keygen -t ed25519
RSA же является более совместимым со старыми серверами.
Жмём Enter
для пути по умолчанию. Можно задать короткую passphrase — например 2–3 буквы и цифры - или оставить пустой (не рекомендуется).
После этого сгенерируется ключ, на который можно посмотреть здесь
cat ~/.ssh/id_rsa.pub
Теперь необходимо скопировать этот ключ на прокси-сервер и на основной сервер. Воспользуемся командами:
# копируем ssh-ключ на прокси сервер
ssh-copy-id -i ~/.ssh/id_rsa.pub bob@108.177.126.0
# на основной сервер
ssh-copy-id -i ~/.ssh/id_rsa.pub bob@11.6.3.10
Если всё получилось правильно, то команда
ssh 11.6.3.10
работает с короткой passphrase.
Если вам приходится часто подключаться к серверам, то вы можете воспользоваться командой ssh-add
, чтобы он “подкладывал” ssh-ключи утилите ssh
без ввода passphrase. Список полезных команд:
# хранит ключ ровно столько, сколько живет сам `ssh-agent`
ssh-add
# если видите список ключей - агент активен
ssh-add -l
# хранит ключ 8 часов
ssh-add -t 8h
Альтернативный подход
Если вы подключены к офисному Wi-Fi или по корпоративному VPN, то вы скорее всего находитесь внутри сети, поэтому сервера доступны без прокси сервера. Поэтому можно подключаться напрямую к основному серверу, избегая задержек на прокси.
Предлагается использовать такую конфигурацию ssh конфигов:
cat ~/.ssh/config
Host 11.6.3.*
User bob
ServerAliveInterval 30
cat ~/.ssh/config_proxy
Host 11.6.3.*
User bob
ServerAliveInterval 30
ProxyJump 108.177.126.0
Для быстрого переключения используется bash скрипт, назовем его con
. Создадим файл (и папку) ~/username/bash_scripts/con
, запишем в него:
#!/bin/bash
server=$1
with_proxy=$2
if [ "$with_proxy" == "" ]; then
ssh -Y bob@11.6.3.$server -t "bash"
else
ssh -Y bob@11.6.3.$server -F ~/.ssh/config_proxy -t "bash"
fi
-Y
— позволяет открывать X11 окна на локальной машине, -t "bash"
— открывает bash оболочку на сервере, если по умолчанию на сервере стоит другая.
Теперь этот файл нужно сделать исполняемым, чтобы его можно было запускать:
chmod u+x ~/username/bash_scripts/con
Добавьте путь к скрипту в переменную PATH
, чтобы команда con
была видна не только в папке, где лежит этот скрипт. Для этого откройте файл (или создайте, если его нет) ~/.bashrc
(для macOS это ~/.bash_profile
или ~/.zshrc
) и вставьте строку:
export PATH="$PATH:/home/username/bash_scripts/"
Теперь используем:
- внутри сети
con 10
Вы попадете на машину 11.6.3.10
- Извне (через прокси):
con 10 anysymbol
Второй аргумент может быть любым символом — он просто сигнализирует скрипту выбрать конфиг config_proxy. Логика упрощает ввод: без аргумента — прямое подключение, с аргументом — через прокси
Как это выглядит у автора:

Заключение
Теперь у вас есть базовая настройка для подключения к серверу и удобного управления сессиями. Это позволит сосредоточиться на работе, а не на технических деталях входа. Дальнейшие шаги помогут настроить полноценную среду для разработки и анализа данных.
Продолжение
Во второй части будет рассмотрена установка python, R, Jupyter Lab, Coder и настройка удаленного рабочего процесса (workflow).