Сценарий Powershell: SSH на сервер - PullRequest
0 голосов
/ 28 октября 2018

Я хотел бы знать, возможно ли написать сценарий powershell, который подключается к серверу через ssh и что-то делать на этом сервере.

Спасибо за вашу помощь.

Ответы [ 2 ]

0 голосов
/ 29 октября 2018

По этой теме есть много статей по всему Интернету, и, поскольку PowerShell Core теперь является открытым исходным кодом и может быть установлен в Windows / Linux / OSX, SSH для PowerShell давно уже существует.

Пример (ы):

Использование SSH для доступа к серверам Linux в PowerShell

Использование SSH с PowerShell

Управление Windows Powershell с терминала Linux

В MS PowerShellGallery есть несколько модулей специально для этого варианта использования.

Find-Module -Name '*ssh*'

Version              Name                                Repository           Description                                                                                  
-------              ----                                ----------           -----------                                                                                  
2.0.2                Posh-SSH                            PSGallery            Provide SSH and SCP functionality for executing commands against remote hosts.               
2.1.3                SSHSessions                         PSGallery            Svendsen Tech's SSH-Sessions module provides SSH session creation, management and interact...
0.0.2.0              OpenSSHUtils                        PSGallery            Utilities and functions for configuring OpenSSH on Windows.                                  
1.0.0                SSH                                 PSGallery            Provides a PowerShell-based SSH client based on SSH.net  http://sshnet.codeplex.com/         
1.1.3                PowerSSH                            PSGallery            This module detects the first use of an SSH command, automatically runs the SSH agent, kee...
0.9.4                WinSSH                              PSGallery            Install OpenSSH-Win64, optionally install ssh-agent and sshd Services. Also includes funct...
0.0.30               PSSharedGoods                       PSGallery            Module covering functions that are shared within multiple projects                           
1.0.1                ssh-wrapper                         PSGallery            Exposes ssh from WSL by wrapping: bash -c "ssh $args". Requires Windows Subsystem for Linu...
1.0.4                PSShortcut                          PSGallery            This module eases working with Windows shortcuts (LNK and URL) files.                        
1.0                  cEPRSSharepoint                     PSGallery            DSCModule helps in installing & configuring the sharepoint site, Farm etc.,                  
2.0.1.8              SkypeForBusinessHybridHealth        PSGallery            Uses on-premises modules such as Skype For Business and SkypeOnlineConnector to validate b...
0.3.1                posh-sshell                         PSGallery            Provides integration with ssh-agent and pageant from within Powershell                       
1.1.4                PowerSSH-Legacy                     PSGallery            This module detects the first use of an SSH command, automatically runs the SSH agent, kee...

SSH С Windows Server на Linux Server- Invoke-SSHCommand

Invoke-SSHCommand $IndexID.SessionID -command "curl -v telnet://WindowsServerA:4750& sleep 2; kill $!"

# Results

Host       : LinuxServerA
Output     : {}
ExitStatus : 0



Invoke-SSHCommand $IndexID.SessionID -command "curl -v telnet://LinuxServerB:4750& sleep 2; kill $!"

# Results
Host       : LinuxServerA
Output     : {}
ExitStatus : 0



Invoke-SSHCommand $IndexID.SessionID -command "curl -v telnet://WindowsServerA:4750 2>&1 & sleep 2; kill $!"

# Results
Host       : LinuxServerA
Output     : {* About to connect() to WindowsServerA port 4750, *   Trying 10.10.10.10... connected, * Connected to
             WindowsServerA (10.10.10.10) port 4750}
ExitStatus : 0



Invoke-SSHCommand $IndexID.SessionID -command "curl -v telnet://LinuxServerB:4750 2>&1 & sleep 2; kill $!"

# Results
Host       : LinuxServerA
Output     : {* About to connect() to LinuxServerB port 4750, *   Trying 10.10.10.11... connected, * Connected to
             LinuxServerB (10.10.10.11) port 4750}
ExitStatus : 0
0 голосов
/ 28 октября 2018

Я собирался предложить вам использовать PuTTY.на самом деле, вы должны использовать plink

Если вы посмотрите на SSH (команда для Linux), вы можете выполнить удаленные команды следующим образом:

Отдельная команда:

ssh $HOST ls

Несколько команд:

ssh $HOST ls; pwd; cat /path/to/remote/file

Если вы хотите сделать это на компьютере с Windows, вам нужно либо использовать plink.exe, либо аналогичный инструмент.,

Очевидно, есть также некоторая библиотека для powershell для выполнения удаленных команд через ssh , но это результат того, что я потратил 30 секунд на поиск в Google remote command ssh powershell, поэтому я не знаю, будет ли этоработать на вас, или если для удаленного управления требуется PowerShell (вы можете получить его для Linux)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...