hub.oscript.io
hub.oscript.io
Войти

ClientSSHпакет

ssh client для oscript

автор: a.sosnoviy aka lab; Artem Kuznetsovскачиваний: 72репозиторий: github.com/oscript-library/ClientSSH

Пакет лежит в основном пуле хаба, а opm знает этот хаб по умолчанию: короткой формы достаточно.

opm install ClientSSH

Скачанный файл ставится командой opm install -f <файл> — сеть для этого уже не нужна.

Описание

GitHub release GitHub license GitHub Releases GitHub All Releases

Build Status Quality Gate Coverage Tech debt

<a href="https://checkbsl.org"><img alt="Checked by Silver Bulleters SonarQube BSL plugin" src="https://web-files.do.bit-erp.ru/sonar/b_t.png" align="right" style="width:400px"/></a>

Oscript SSH client

SSH клиент для oscript

Примеры использования

SSH клиент

#Использовать ClientSSH
    
КлиентSSH = Новый КлиентSSH("127.0.0.1", 22, "user", "password");
Соединение = КлиентSSH.ПолучитьСоединение();
Результат = Соединение.ВыполнитьКоманду("echo 123");   
    
Соединение.Отключиться();

Клиент для конфигуратора в режиме Агента

Запустить конфигуратор в режиме агента:
1cv8.exe DESIGNER /F"<ПутьКБазе>" /AgentMode /Visible /AgentSSHHostKeyAuto /AgentBaseDir "<ПутьКПапкеВыгрузки>"

#Использовать ClientSSH

КлиентSSH = Новый КлиентSSH("127.0.0.1", 1543, "admin", "");
Поток = КлиентSSH.ПолучитьПоток();

// Следующие строки обязательны, иначе скрипт зависает
// вариант для 8.3.16 и выше
Результат = Поток.ЗаписатьВПоток("options set --show-prompt=no");
// вариант для 8.3.15 и ниже
Результат = Поток.ЗаписатьВПоток("options set --show-prompt=no --output-format=json");

Результат = Поток.ЗаписатьВПоток("common connect-ib");
Результат = Поток.ЗаписатьВПоток("config dump-config-to-files --dir .");
Результат = Поток.ЗаписатьВПоток("common disconnect-ib");

Поток.Отключиться();

Авторизация ssh с ключом

#Использовать ClientSSH
    
КлиентSSH = Новый КлиентSSH("127.0.0.1", 22, "user", "");
КлиентSSH.УстановитьКлюч("ПутьКСекретномуКлючу", "СекретнаяФраза");
Соединение = КлиентSSH.ПолучитьСоединение();
Результат = Соединение.ВыполнитьКоманду("echo 123");   
    
Соединение.Отключиться();

Передача файлов

#Использовать ClientSSH
    
КлиентSSH = Новый КлиентSSH("127.0.0.1", 1543, "admin", "");
Scp = КлиентSSH.ПолучитьScp();
Scp.ОтправитьФайл("C:\cf\1Cv8.cf", "/1Cv8.cf");

Scp.ПолучитьФайл("/1Cv8.cf", "C:\cf\1Cv8_2.cf");
Scp.Отключиться();

Известные проблемы:

  • Вешается поток, если не передать следующие настройки:
    • для 8.3.16 и выше
      • Поток.ЗаписатьВПоток("options set --show-prompt=no");
    • для 8.3.15 и ниже
      • Поток.ЗаписатьВПоток("options set --show-prompt=no --output-format=json");
  • В папке выгрузки создается файл agentbasedir.json и подпапка с именем пользователя (Особенность режима Агента)

Пример json-файла

{
"usersInfo": [
{
"name": "Администратор",
"dir": "0"
}
]
}