Удаленный доступ к серверу или рабочему месту часто требуется различным специалистам: системному администратору, программисту и даже бухгалтеру. Иногда на предприятии штатный системный администратор либо отказывается предоставить удаленный доступ, либо не имеет такой возможности (часто просто местный эникейщик не знает как это сделать). В подобном случае может помочь создание SSH-тунеля.
Данная обработка позволяет создать соединение с удаленным сервером или другим узлом сети напрямую из 1С:Предприятия без использования консоли Linux.
Для реализации подключения нам понадобится SSH сервер с публичным адресом. Схема проста: сервер, куда нам необходимо получить доступ, с помощью внешней обработки соединяется с промежуточным сервером, а системный администратор, используя SSH клиент (для windows подойдет PuTTY), получает доступ порту сервера.
SSH позволяет строить целые цепочки туннелей, соединяя точку входа следующего с точкой выхода предыдущего. Таким образом, чтобы получить туннель с ПК админа на RDP-сервер, при этом оба узла с "серыми" IP-адресами, нам нужно создать два туннеля с промежуточным узлом.
Параметры настройки:
Хост
-
Адрес/порт: адрес и порт сервера, куда необходим доступ;
-
Служебный порт: Промежуточный порт доступа, может отличаться от порта сервера
-
Сокет: например /tmp/session1
Сервер SSH
-
Адрес/порт: адрес и порт промежуточного SSH сервера
-
Пользователь: Пользователь промежуточного SSH сервера
-
Открытый ключ: Открытый ключ RSA для доступа без пароля к SSH серверу
Порядок подключения:
- Подключаем обработку через Дополнительный отчеты и обработки.
- Нажимаем настройки
- Указываем адреса и порты
- Создаем ключ
- Сохраняем параметры
- На промежуточном SSH сервере добавляем ключ и файл доверенных открытых ключей (в случае CentOS это ~/.ssh/authorized_keys)
- Нажимаем включить
- На удаленном рабочем месте выполняем команду plink.exe -N -L ПортНаРабочемМесте:127.0.0.1:СлужебныйПорт root@ПромежуточныйСервер -pw Пароль -no-antispoof
Теперь по адресу 127.0.0.1:ПортНаРабочемМесте нас перенаправит на Адрес/порт хоста
Если взять настройки на скриншотах, то при наборе в браузере http://127.0.0.1/ИмяПубликацииБазы откроется веб клиент 1С:Предприятия
Особенности работы с Windows:
В Windows (до win10) нет встроенных инструментов для работы с SSH, поэтому используется утилита PuTTY plink (включил в обработку как двоичные данные).
Генерацию ключей придется произвести вручную с помощью утилиты puttygen и вставить в соответствующие поля обработки (закрытый ключ из puttygen сначала сохраняем в файл, затем открываем через блокнот и вставляем содержимое в поле обработки "ключ").
Имеется возможность запуска обработки на клиентской машине, чтобы перенаправить соединение, например на сервер RDP в локальной сети. Для этого в адрес хоста указываем адрес или имя RDP сервера в локальной сети (например 192.168.1.15) и порт 3389. В этом случае клиентская машина будет "шлюзом", пока активно соединение или не закроют открывшиеся консольные окна cmd и plink.
Проверено:
Платформа 1С:Предприятие 8.3 (8.3.14.1630)
Версия БСП: 3.0.1.428
PuTTY Release 0.71
Полезная статья: SSH-туннели на службе системного администратора
UPDATE 06.08.2019: Отключена проверка ключа хоста для сервера Linux
UPDATE 07.08.2019: Появилась возможность отслеживания состояния подключения на сервере Windows. Добавлена возможность использования нескольких хостов/портов