Выполнение команд в Linux через SSH с помощью Powershell

В одной моей задаче надо было написать скрипт для отправки SMS-сообщений. У нас уже был настроен сервер для отправки SMS на Linux. Оставалось только научиться отправлять команды в Linux через SSH.

Первоначально я пытался использовать модуль SSH-Session, но в нем были какие-то ошибки при отправке команд. Поэтому я остановился на Posh-SSH.

 

Устанавливаем модуль:

 

PS H:\> iex (New-Object Net.WebClient).DownloadString("https://gist.github.com/darkoperator/6152630/raw/c67de4f7cd780ba367cccbc2593f38d18ce6df89/instposhsshdev")

Downloading latest version of Posh-SSH from https://github.com/darkoperator/Posh-SSH/archive/master.zip
File saved to C:\Users\user1\AppData\Local\Temp\Posh-SSH.zip
Uncompressing the Zip file to C:\Users\user1\Documents\WindowsPowerShell\Modules
Renaming folder
Module has been installed

 

Перезапускаем Powershell-сессию и пробуем добавить модуль:

Import-Module posh-ssh

Мне понадобились следующие командлеты:

  • New-SSHSession
  • Invoke-SshCommand
  • Get-SSHSession
  • Remove-SshSession

Назначение командлетов понятно из названия (по порядку): инициализация подключения к SSH-серверу, выполнение команды, получение объекта подключения, закрытие подключения.

 

New-SSHSession требует учетные данные для подключения, поэтому их получаем через Get-Credential.

Приблизительный пример использования модуля в моем случае был такой:

Import-Module posh-ssh;

$credential = Get-Credential;
New-SSHSession -ComputerName 10.11.12.201 -Credential $credential;

Invoke-SshCommand -index 0 -Command ;
# -index 0 - это идентификатор подключения. Обычно 0. Можно посмотреть все подключения через Get-SSHSession.

Get-SSHSession | Remove-SshSession;

 

В обычной жизни конечно вы не будете использовать Get-Credential каждый раз, когда надо выполнить скрипт, поэтому удобно будет сохранить объект Credential в каком-то более-менее зашифрованном виде на диск. Об этом я отдельно написал в статье "".

 

Метки: powershell (ru), скрипт

ПечатьE-mail

Добавить комментарий


Защитный код
Обновить