По этой теме есть много статей по всему Интернету, и, поскольку 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