Setup OpenSSH server (win32-openssh) on Windows

Puppet-Finland team



4,060 latest version

5.0 quality score

Version information

  • 1.0.0 (latest)
released Jun 8th 2018
This version is compatible with:
  • Puppet Enterprise 2018.1.x, 2017.3.x, 2017.2.x, 2017.1.x, 2016.5.x, 2016.4.x
  • Puppet >= 4.7.0 < 6.0.0
  • windows

Start using this module


puppetfinland/win32_openssh — version 1.0.0 Jun 8th 2018


Puppet module for managing win32-openssh, Microsoft's official version of sshd for Windows.

The Chocolatey package ("openssh") pokes a hole in the Windows firewall by default, so this module does not need to it separately.


To use default settings just

include ::win32_openssh

This sets up OpenSSH server with default settings. You can customize several basic settings:

class { '::win32_openssh':
  listenaddress                => ['','::1'],
  port                         => 10022,
  permitrootlogin              => 'no',
  passwordauthentication       => 'no',
  disable_microsoft_ssh_server => true,

The default shell for SSH logins depends on what is available. If Powershell Core is found it is preferred over stock Powershell. This behavior can be overridden with the $default_shell parameter, which should be in the format that the Set-SSHDefaultShell.ps1 cmdlet expects.


Currently this module can't update the default shell once it has been set unless registry value HKLM:\SOFTWARE\OpenSSH\DefaultShell is removed manually.

This module also does not remove the original firewall rule generated by the Chocolatey package. This does not affect anything unless SSH port is later changed, in which case the ports will be out of sync.