Let’s face it. Starting and stopping SSH in ESXi is pain through GUI methods. I often as a consultant need to connect via SSH to hosts to run data collect scripts, assess NIC and HBA firmware and driver versions, and for troubleshooting purposes, like to run esxtop. The good news is you can manage ESXi SSH Using PowerCLI. How cool is that?
Just remember to use get-vmhost to narrow down the specific hosts you want to execute the following commands.
Get the current status of ESXi SSH Using PowerCLI
get-vmhost hostname | get-vmhostservice | where-object {$_.key -eq "TSM-SSH"} | select-object vmhost,policy,running
Policy is the start up mode.
- Automatic = Start automatically if any ports are open, and stop when all ports are closed
- On = Start and stop with host
- Off = Start and stop manually
Start ESXi SSH Using PowerCLI
get-vmhost hostname | get-vmhostservice | where-object {$_.key -eq "TSM-SSH"} | start-vmhostservice -confirm:$false
Note the confirm switch. If you don’t specify that, it will prompt you.
Stop ESXi SSH Using PowerCLI
get-vmhost hostname | get-vmhostservice | where-object {$_.key -eq "TSM-SSH"} | start-vmhostservice -confirm:$false
Note the confirm switch. If you don’t specify that, it will prompt you.
Set startup policy for ESXi SSH Using PowerCLI to start and stop with host
get-vmhost hostname | get-vmhostservice | where-object {$_.key -eq "TSM-SSH"} | set-vmhostservice -policy "Off"
Be careful if you have any third party products that use SSH. Nutanix for example comes to mind. If you goofed and need it set to start and stop with host, just use “On” for the policy parameter.