PowerShell SSH Terminal Server

PowerShell Server is a powerful SSH solution that enables administrators and other IT professionals to securely manage remote Windows machines through a lightweight PowerShell command-line interface.

PowerShell Server is a full-featured SSH 2.0 server that enables Windows Desktops and Servers with a secure remote entry point to a Windows PowerShell Host. This gives users the power to securely manage Windows remotely through PowerShell from any standard SSH client, including: PuTTY, OpenSSH, iPhone, Blackberry, Linux/Unix machines, as well as our own SSH client solutions.

In addition to terminal access, the included secure remote access cmdlets work with PowerShell Server to provide an easy-to-use WinRM alternative for PowerShell Remoting. PowerShell Server can act as a standalone server or can pass remote objects through the included SSHRunspace cmdlet, enabling SSH secured remoting.

Remoting

When the SSHRunspace cmdlet connects to PowerShell Server, the objects in the remote shell are XML serialized and returned through a secure SSH connection. On the client side, SSHRunspace will transparently deserialize to PSObjects with corresponding fields matching the remote objects. The returned objects can be pipelined, evaluated, and stored as any other PSObject.

Secure File Transfer (SFTP)/SCP Server

PowerShell Server can be used to easily add Secure File Transfer (SFTP)/SCP server capabilities to Windows. PowerShell Server is an SFTP/SCP Server which works out of the box with minimal configuration. For advanced scenarios, control over items such as algorithms and authentication methods are supported. You can also extend functionality through custom scripts.

SFTP Server Features

PowerShell-enabled SFTP/SCP Server.

Zlib Transfer Compression.

AES & 3DES Encryption.

Public Key and Password Authentication.

IPV6 Addressing Support.

FIPS 140-2 validated cryptography

Windows User Management.

What is "PowerShell-Enabled" SFTP?

PowerShell Server is configured through PowerShell script that provides hooks into all of the most common events associated with SFTP connection and file transfer. As a result, it is easy to extend and integrate the SFTP capabilities of PowerShell server with back-end systems for messaging, automation, authentication, and more.

For example, suppose that an administrator would like to log, email, or send an instant message of some kind when a file has been uploaded. The administrator could insert script into the FileClose configuration event and execute custom PowerShell script to add this feature.

This powerful extensibility enables many integration opportunities. For example, instead of serving files from the file system, PowerShell Server could act like a virtual file system by retrieving and serving files from another source, like a SQL database. Almost every facet of the SFTP Server is configurable and extensible through PowerShell.

SSH Reverse Tunnels

PowerShell Server's SSH Reverse Tunnel forwards traffic to and from local servers/machines through a secure SSH pipe.

Configuring an SSH Reverse Tunnels is easy. All you need to do is specify your SSH server information and credentials and the remote port on which you want traffic to be received. Once the tunnel is established, any traffic sent to the SSH host on the port specified during configuration will be sent over SSH to PowerShell Server. That traffic is then automatically forwarded to the local server. From the client perspective, they are communicating directly with the server behind your firewall.

SSL Tunnels

SSL Tunnels provide a simple way to add a layer of security using SSL/TLS. When configured, PowerShell Server will act as a "middle man" between incoming connections and local servers/hosts. PowerShell will listen on the specified port for incoming connections and secure those connections using SSL/TLS. This secures the communication between the client and PowerShell Server. The communication is then forwarded on to the local server/host over standard TCP/IP.

Dynamic ASP.NET Publishing

PowerShell Server includes an ASP-like PowerShell based template language for building web applications and making PowerShell scripts web accessible. This template language, PowerShell ASP, contain a mixture of markup and inline PowerShell script. You can use PowerShell ASP inside your existing applications, or create complete applications from scratch based only on PowerShell web pages. PowerShell Server even comes complete with a lightweight Webserver allowing users to web-enable PowerShell scripts without the overhead and setup requirements of Microsoft IIS.

PowerShell Web Publishing runs on the ASP.NET platform, implemented as a custom IHttpHandler mapped to *.ps1x files. Because of this, you can mix PowerShell Web Publishing pages alongside any ASP.NET application. This provides a great way to leverage PowerShell Web Publishing inside your existing applications as needed or you can create complete applications from scratch based only on *.ps1x pages.

Case Study: Implementing an SSH Management Solution

The Canadian Centre for Child Protection Implements their PowerShell-based Solution in Under One Week

With time-critical deadline to meet, the Canadian Centre for Child Protection turned to PowerShell Server to provide them with a proven, secure way to manage their Windows Servers over SSH from their existing Linux infrastructure.

While we initially went with PowerShell Server to manage our Windows servers, we have been really impressed with the other features and plan to expand our usage and deploy the solution to all upcoming Windows servers within our organization.