Gap
We only support WS-Management over HTTP/HTTPS (and the WASM/Gateway tunnel). PowerShell also supports SSH-based remoting, which bypasses WinRM entirely and runs PSRP over an SSH subsystem (pwsh -sshs). This is the most commonly requested non-WinRM transport (cross-platform, no WinRM config). pypsrp does not have it; native C# does.
How it works
Over SSH, PSRP fragments are exchanged using the out-of-process packet protocol (PSGuid-tagged XML packets: Data/DataAck, Command/CommandAck, Close/CloseAck, Signal/SignalAck) over the SSH channel's stdin/stdout — not SOAP. So this also lays the groundwork for the other out-of-proc transports (see the umbrella issue).
Required
- A transport abstraction in client-core that decouples PSRP fragment exchange from the WS-Management SOAP layer.
- An SSH transport that launches the remote
pwsh -sshs -NoLogo subsystem and speaks the out-of-proc packet protocol.
- Surface SSH connection config (host/user/key) in the tokio client.
Acceptance
- e2e: open a runspace pool and run a command to a Linux/Windows host over SSH.
References
- Native C#
OutOfProcTransportManager.cs (SSHClientSessionTransportManager, packet protocol at ~lines 41-124), SSHConnectionInfo.
Gap
We only support WS-Management over HTTP/HTTPS (and the WASM/Gateway tunnel). PowerShell also supports SSH-based remoting, which bypasses WinRM entirely and runs PSRP over an SSH subsystem (
pwsh -sshs). This is the most commonly requested non-WinRM transport (cross-platform, no WinRM config). pypsrp does not have it; native C# does.How it works
Over SSH, PSRP fragments are exchanged using the out-of-process packet protocol (PSGuid-tagged XML packets: Data/DataAck, Command/CommandAck, Close/CloseAck, Signal/SignalAck) over the SSH channel's stdin/stdout — not SOAP. So this also lays the groundwork for the other out-of-proc transports (see the umbrella issue).
Required
pwsh -sshs -NoLogosubsystem and speaks the out-of-proc packet protocol.Acceptance
References
OutOfProcTransportManager.cs(SSHClientSessionTransportManager, packet protocol at ~lines 41-124),SSHConnectionInfo.