Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH*'
1 2 3 4 5
# Install the OpenSSH Client Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0
# Install the OpenSSH Server Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
1 2 3 4 5 6 7 8 9 10 11 12 13
# Start the sshd service Start-Service sshd
# OPTIONAL but recommended: Set-Service -Name sshd -StartupType 'Automatic'
# Confirm the Firewall rule is configured. It should be created automatically by setup. Run the following to verify if (!(Get-NetFirewallRule -Name "OpenSSH-Server-In-TCP" -ErrorAction SilentlyContinue | Select-Object Name, Enabled)) { Write-Output "Firewall Rule 'OpenSSH-Server-In-TCP' does not exist, creating it..." New-NetFirewallRule -Name 'OpenSSH-Server-In-TCP' -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22 } else { Write-Output "Firewall rule 'OpenSSH-Server-In-TCP' has been created and exists." }
PS C:\Users\Administrator> # Start the sshd service PS C:\Users\Administrator> Start-Service sshd PS C:\Users\Administrator> PS C:\Users\Administrator> # OPTIONAL but recommended: PS C:\Users\Administrator> Set-Service -Name sshd -StartupType 'Automatic' PS C:\Users\Administrator> PS C:\Users\Administrator> # Confirm the Firewall rule is configured. It should be created automatically by setup. Run the following to verify PS C:\Users\Administrator> if (!(Get-NetFirewallRule -Name "OpenSSH-Server-In-TCP" -ErrorAction SilentlyContinue | Select-Object Name, Enabled)) { >> Write-Output "Firewall Rule 'OpenSSH-Server-In-TCP' does not exist, creating it..." >> New-NetFirewallRule -Name 'OpenSSH-Server-In-TCP' -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22 >> } else { >> Write-Output "Firewall rule 'OpenSSH-Server-In-TCP' has been created and exists." >> } Firewall rule 'OpenSSH-Server-In-TCP' has been created and exists. PS C:\Users\Administrator>