You might have heard a number of the buzz concerning the open supply challenge undertaken by the Mirosoft PowerShell workforce to create a local, requirements compliant version of OpenSSH. I’ve been engaged on the set up packaging for the OpenSSH challenge and I wished to ensure everybody knew concerning the common automated installer accessible to put in it on any model of Home windows.
The OpenSSH common automated installer began life as a Chocolatey bundle – and certainly the bits are nonetheless wrapped in Chocolatey goodness.
What just isn’t generally recognized is that the unique bundle has been dramatically enhanced to run in any set up situation – together with ones that don’t contain the Chocolatey shopper. It additionally runs in minimalized environments reminiscent of Nano and Home windows containers.
Chocolatey Worth-Add
Whereas the underlying bits can run in lots of set up eventualities, Chocolatey offers a wealthy and versatile bundle administration expertise for OSes that help it. It doesn’t require PowerShell 5 (PackageManagement) and it simply works again to Home windows 7. In contrast to Window’s PackageManagement, the native Chocolatey shopper additionally works in shells apart from PowerShell (CMD, Python, Ruby, and so forth). The Chocolate.org repository additionally offers world distribution of the information.
Examined On
- Nano RTM (PSH 5 & PackageManagement & no 32-bit)
- Server 2012 R2 (PSH 4)
- Home windows 10 Anniversary (PSH 5, Chocolatey)
- Home windows 7 x64 (PSH 2, Chocolatey)
NO RESTRICTIONS, ENHANCED FUNCTIONALITY
Different set up strategies might require a number of of the next which can be NOT required for this common installer
- NOT REQUIRED: 32-bit Subsystem (WOW64) – some installers make the most of 32-bit utilities like psexec.exe or ntrights.exe
- NOT REQUIRED: Full .NET – some installers use CMDLets past these in .NET Core
- NOT REQUIRED: Web Entry – some installers supply every part from public repositories – obtain every part that you must on-premises.
- NOT REQUIRED: PowerShell Newer Than Model 2.0 – some installers use CMDlets in newer variations or utilizing syntax that solely works in 3.0 or later.
- NOT REQUIRED: Guide Fussing for Upgrades – most installers presume a primary time set up on a clear system – this common installer is aware of when it’s doing an improve.
- NOT REQUIRED: Chocolatey Itself – for eventualities the place it can’t or shouldn’t be put in.
- NOT REQUIRED: PSH 5 PackageManagement – for eventualities the place PSH 5 just isn’t at present put in.
- ENABLED: Docker – Docker is supported and Dockerfiles are offered on this repo.
- ENABLED: Detects OS bitness (32 or 64) and installs acceptable model.
- ENABLED: Uninstaller – cleanly uninstalls.
- ENABLED: Checks for Port Conflicts
- ENABLED: Superior Configuration Switches – permits altering the SSHD port, putting in solely shopper instruments, altering the logging degree, overwriting SSH_CONF to reset configuration.
Supported Set up Eventualities
- Supply information are inner – making it simpler to curate the bundle into your individual personal repository and to make use of offline.
- It may be used to put in on machines that don’t (or can’t) have Chocolatey (Nano) nor WOW64 (ServerCore w/out WOW64 put in) – see the directions later on this doc.
- It may be used to put in when goal machine being constructed has no web entry.
- The scripts included can set up Chocolatey in-line after which set up this openssh multi function command line – see later on this doc.
- It may be used to put in SSH underneath docker.
Listed below are a number of the design factors of how the Non-Chocolatey set up eventualities are supported by this installer:
- All information wanted for set up, together with the unique OpenSSH information are included within the bundle – so long as this archive could be sourced and extracted it may be put in on that platform.
- .nupkg information are actually simply .zip information – rename them to .zip and any unzipper can be utilized to extract the information.
- ChocolateyInstall.ps1 detects whether or not it’s truly working underneath Chocolatey or not and doesn’t run chocolatey particular APIs when it’s not.
- BarebonesInstaller.ps1 offers a non-chocolatey kicker – it takes common PowerShell parameters whose names equate to the variables that Chocolatey parameters are usually set to – by doing this it offers a pure PowerShell approach to ship the parameters right into a ChocolateyInstall.ps1
- On Nano (and any OS with PSH 5), the NuGet supplier of PackageManagement can be utilized to obtain and extract the .nupkg from Chocolatey.org. That is needed as a result of PackageManagement suppliers usually have their very own implementations for processing packages and due to this fact don’t normally reuse current code bases such because the common Chocolatey shopper accessible from Chocolatey.org. In gentle of the necessity to continuously be sustaining an duplicate implementation from the common Chocolatey Consumer code, the ChocolateyProvider has not been thriving after Microsoft turned it over to the open supply group for ongoing growth.
For particulars on the instructions to make use of for numerous set up eventualities, please see: https://gitlab.com/DarwinJS/ChocoPackages/-/blob/grasp/openssh/readme.md