Перейти к основному содержимому

Работа с SSH и SFTP

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

Типы

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

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

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

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

Примеры

Работа с файлами

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

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

Использование режима агента

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

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

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

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

Использование SSH-туннеля

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

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

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

Агент.Выполнить("-v")
;

Вывод промежуточных результатов

Пример вывода промежуточных результатов в процессе выполнения команды в КонсольSsh:

метод ЗаписьВФайлСВыводом()
пер Лог = новый Файл("log.txt")

исп Соединение = новый СоединениеSsh("ssh-server", 22, "user", "password")
исп Консоль = Соединение.ОткрытьКонсоль(Ложь)
Консоль.СтрокаПриглашения = "Строка приглашения"
Консоль.Отправить("команда")

пока не Консоль.ОжидатьПриглашение()
Консоль.ПотокВывода.КопироватьВФайл(Лог, ЗаписатьВКонец = Истина)
;
;