Files
PowerShell/test/tools/Modules/Microsoft.PowerShell.RemotingTools/Microsoft.PowerShell.RemotingTools.psd1
T
5f46605a21 Add Ubuntu SSH remoting tests CI (#12033)
* Add SSH remoting CI

* Fix typo

* Add install git to Ubuntu CI

* Update .vsts-ci/sshremoting-tests.yml

Co-Authored-By: Aditya Patwardhan <adityap@microsoft.com>

* Fix install git 1

* Add missing tools module import

* Change ubuntu service restart

* Update ssh install

* fix module path

* fix module path

* change module import

* Add tracing

* Add service start retry

* Fix service restart

* Fix options restore

* Fix Restore-PSOptions path

* Fix Pester test output

* fix typo

* Fix test output path

* Debug 1

* Debug 2

* Debug 3

* Change results path

* Fix result publish to use build artifacts directory

* Add more New-PSSession tests

* Remove User test

* Remove env:USER

* Add API tests

* Fix type for Subsytem API test

* Update .vsts-ci/sshremoting-tests.yml

Co-Authored-By: Travis Plunk <travis.plunk@microsoft.com>

* Update .vsts-ci/sshremoting-tests.yml

Co-Authored-By: Travis Plunk <travis.plunk@microsoft.com>

* Update .vsts-ci/sshremoting-tests.yml

Co-Authored-By: Travis Plunk <travis.plunk@microsoft.com>

* Apply suggestions from code review

Co-authored-by: Aditya Patwardhan <adityap@microsoft.com>
Co-authored-by: Travis Plunk <travis.plunk@microsoft.com>
2020-03-11 14:45:14 -07:00

51 lines
2.1 KiB
PowerShell

# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License.
@{
RootModule = './Microsoft.PowerShell.RemotingTools.psm1'
ModuleVersion = '0.1.0'
GUID = 'e11d52a1-d5a0-4e4d-92cd-e87114bf4a5c'
Author = 'Microsoft Corporation'
CompanyName = 'Microsoft Corporation'
Copyright = '(c) Microsoft Corporation. All rights reserved.'
Description = '
This module contains remoting tool cmdlets.
Enable-SSHRemoting cmdlet:
--------------------------
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:
a. 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.
b. SSH client must be installed on the system as PowerShell uses it for outgoing connections.
c. SSHD (ssh daemon) must be installed on the system for PowerShell to receive SSH connections.
d. SSHD must be configured with a Subsystem that serves as the PowerShell remoting endpoint.
The Enable-SSHRemoting cmdlet will do the following:
a. Detect the underlying platform (Windows, Linux, macOS).
b. Detect an installed SSH client, and emit a warning if not found.
c. Detect an installed SSHD daemon, and emit a warning if not found.
d. Accept a PowerShell (pwsh) path to be run as a remoting PowerShell session endpoint.
Or try to use the currently running PowerShell.
e. 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.
'
PowerShellVersion = '6.0'
FunctionsToExport = 'Enable-SSHRemoting'
}