Skip to content

Latest commit

 

History

History
29 lines (21 loc) · 1.64 KB

README.md

File metadata and controls

29 lines (21 loc) · 1.64 KB

EnableSSHRemoting

PowerShell SSH remoting was implemented in PowerShell 6.0 but requries SSH (client) and SSHD (service) components to be installed. In addition the sshd_config configuration file must be updated to define a PowerShell endpoint as a subsystem. Once this is done PowerShell remoting cmdlets can be used to establish a PowerShell remoting session over SSH that works across platforms.

$session = New-PSSession -HostName LinuxComputer1 -UserName UserA -SSHTransport

There are a number of requirements that must be satisfied for PowerShell SSH based remoting:

  • PowerShell 6.0 or greater must be installed on the system. Since multiple PowerShell installations can appear on a single system, a specific installation can be selected.
  • SSH client must be installed on the system as PowerShell uses it for outgoing connections.
  • SSHD (ssh daemon) must be installed on the system for PowerShell to receive SSH connections.
  • SSHD must be configured with a Subsystem that serves as the PowerShell remoting endpoint.

This module exports a single cmdlet: Enable-SSHRemoting

The Enable-SSHRemoting cmdlet will do the following:

  • Detect the underlying platform (Windows, Linux, macOS).
  • Detect an installed SSH client, and emit a warning if not found.
  • Detect an installed SSHD daemon, and emit a warning if not found.
  • Accept a PowerShell (pwsh) path to be run as a remoting PowerShell session endpoint, or try to use the currently running PowerShell.
  • Update the SSHD configuration file to add a PowerShell subsystem endpoint entry.

If all of the conditions are satisfied then PowerShell SSH remoting will work to and from the local system.