Работа с SSH и SFTP

Протокол SSH широко используется для администрирования серверов и отдельных сервисов. По сути, через этот протокол можно получить доступ к консоли удаленного сервера. Протокол SFTP предназначен для выполнения операций с файлами (копирования и т. п.) поверх надежного и безопасного соединения.

Для поддержки SSH используется набор типов:

  • СоединениеSsh: предоставляет интерфейс для взаимодействия по протоколу SSH. Экземпляр этого типа вы можете получить с помощью одного из конструкторов;

  • КонсольSsh: предоставляет интерфейс для взаимодействия с удаленной консолью, с помощью которой можно выполнять произвольный набор команд. Экземпляр КонсольSsh возвращается методом СоединениеSsh.ОткрытьКонсоль().

  • СоединениеSftp: предоставляет интерфейс для взаимодействия с сервером по протоколу SFTP. Экземпляр СоединениеSftp возвращается методом СоединениеSsh.ОткрытьСоединениеSftp().

Пример работы с файлами:

метод ЗагрузитьФайл(Файл: Строка | Файл)
    исп Соединение = новый СоединениеSsh("192.168.0.3", , "user", "password")
    исп Фтп = Соединение.ОткрытьСоединениеSftp()
    Фтп.УстановитьТекущийКаталог("/tmp/")
    Фтп.Записать(Файл)
;

Поддержка SSH позволяет вам использовать режим агента конфигуратора из «1С:Исполнителя». Пример работы с конфигуратором «1С:Предприятия» в режиме агента:

метод ВыгрузитьКонфигурацию(Файл: Строка | Файл)
    исп СоединениеАгент = новый СоединениеSsh("192.168.0.3", 1543, "admin", "123")
    исп Агент = СоединениеАгент.ОткрытьКонсоль()
    Агент.СтрокаПриглашения = "designer> "

    Агент.Выполнить("common connect-ib")
    Агент.Выполнить("config dump-cfg --file=configuration.dmp", 1м)

    исп СоединениеСфтп = новый СоединениеSsh("192.168.0.3", 1543, "admin", "123")
    исп Сфтп = СоединениеСфтп.ОткрытьСоединениеSftp()
    Сфтп.Получить("configuration.dmp", Файл)
    Сфтп.Удалить("configuration.dmp")
;

Пример использования SSH-туннеля:

метод ПодключениеЧерезТуннель()
    знч Настройки = новый НастройкиСоединенияSsh()
    Настройки.УстановитьПароль("12345")
    Настройки.УстановитьИзвестныеХосты(ПутьКФайлуKnownHosts)
    Настройки.ПеренаправлениеЛокальногоПорта(1543, "192.168.0.3", 1543)
    исп СоединениеТуннель = новый СоединениеSsh("212.212.212.212", , "user", Настройки)

    исп СоединениеАгент = новый СоединениеSsh("127.0.0.1", 1543, "admin", "123")
    исп Агент = СоединениеАгент.ОткрытьКонсоль()
    Агент.СтрокаПриглашения = "designer> "

    Консоль.Записать(Агент.Выполнить("-v").ПрочитатьКакСтроку())
;