Enable SSH on a Windows computer.
SSH is an alternative channel Octotor can use to manage Windows computers. Windows 10/11 and Windows Server 2019+ ship an OpenSSH server — it just isn't switched on. Three PowerShell commands turn it on: install, start, open the firewall.
Before you begin
What you need
An Administrator account on the computer, and — if you restrict access — your Octotor server's IP address. The example server address below is 172.20.101.5 — substitute your own. Everything runs in PowerShell opened as Administrator on that computer.
1Install the OpenSSH Server feature
Windows carries OpenSSH as an optional feature — this installs it:
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0What you should see: a progress bar, then Online : True in the result.
2Start the sshd service — and keep it started
Start the SSH server now, then set it to start automatically on every boot:
Start-Service sshdWhat you should see: no output — the service is running.
Set-Service -Name sshd -StartupType 'Automatic'What you should see: no output — the service now starts on boot.
3Allow SSH in the firewall
SSH listens on TCP port 22. Run one of the three commands below — pick the one that matches how your Octotor server reaches this computer. All three create the same rule, so running a second one fails with "already exists".
AOpen port 22 to any address (simplest):
New-NetFirewallRule -Name "_Allow_TCP22" -DisplayName "_Allow_TCP22" -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22What you should see: a rule summary ending with Status: The operation completed successfully.
BRestrict access to the Octotor server only (recommended):
New-NetFirewallRule -Name "_Allow_TCP22" -DisplayName "_Allow_TCP22" -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22 -RemoteAddress 172.20.101.5What you should see: the same rule summary. Replace 172.20.101.5 with your Octotor server's IP address.
CAllow the Tailscale network (when Octotor reaches this computer over Tailscale):
New-NetFirewallRule -Name "_Allow_TCP22" -DisplayName "_Allow_TCP22" -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22 -RemoteAddress 100.64.0.0/10What you should see: the same rule summary. 100.64.0.0/10 is the address range Tailscale uses.
✓Prove it works
From another machine that's allowed by your firewall rule, run ssh youruser@that-computer — a password prompt means SSH is on.