Learning objectives
- Check whether the Windows OpenSSH client is available.
- Use basic SSH commands in Windows Terminal or PowerShell.
- Connect to Linux with PuTTY and understand key-format differences.
- Choose a client based on requirements rather than perceived security branding.
Prerequisites
- Windows 10 or Windows 11 with permission to use the required client.
- Authorized server details: hostname, port, username, and authentication method.
- Windows Terminal, PowerShell, Command Prompt, or an official PuTTY installation.
SSH options on Windows
PuTTY is a standalone third-party suite with graphical saved sessions, PuTTYgen, Pageant, and command-line tools. Windows OpenSSH is Microsoft’s optional implementation of the familiar ssh, scp, and sftp commands. Windows Terminal is a terminal window application; it hosts shells such as PowerShell, which then run ssh.
Check OpenSSH availability in PowerShell:
ssh -V
Get-Command sshIf the command is unavailable, the Settings path depends on the Windows release and build:
- Windows 11: open Settings → System → Optional features, choose the option to view or add features, and search for “OpenSSH Client.”
- Windows 10: open Settings → Apps → Apps & features → Optional features, choose Add a feature, and search for “OpenSSH Client.” Labels can vary between Windows 10 builds.
An administrator can also inspect and install the Windows capability from an elevated PowerShell session:
Get-WindowsCapability -Online | Where-Object Name -Like 'OpenSSH.Client*'
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0The installation command requires administrative permission and should be used only if the capability is not already installed and organizational policy allows it. Reopen the terminal and run ssh -V afterward. Managed computers may require an administrator to perform the installation.
Basic Windows SSH commands
ssh [email protected]
ssh -p 2222 [email protected]
ssh -i "$HOME\.ssh\work_key" [email protected]
ssh -v [email protected]
exitOptions are case-sensitive. In OpenSSH, lowercase -p selects a port; uppercase -P is used by some other tools such as scp. A Windows path may be quoted. Commands entered after login run on the remote Linux system, so Linux syntax and permissions apply there.
Connect from Windows to Linux
Open a trusted terminal
Start Windows Terminal or PowerShell. Confirm the supplied hostname, username, and port.
Run the SSH command
Use
ssh username@hostname, adding-p PORTif required.Verify the server identity
Compare the first-use host key fingerprint with a trusted administrator-provided value before accepting it.
Authenticate and work
Enter your password or key passphrase. The prompt changes to the remote shell after success. Run only intended commands.
Exit cleanly
Run
exit. This closes the remote shell and returns to the local Windows prompt.
Choose an SSH client
| Requirement | PuTTY | Windows OpenSSH |
|---|---|---|
| Interface | Graphical saved sessions | Commands in Windows Terminal or PowerShell |
| Private-key file | PPK, selected in the session | OpenSSH key format with -i or configuration |
| Useful when | You want saved profiles or Pageant | You want commands shared with macOS and Linux |
Neither client makes an unsafe server safe. Use a maintained version, verify host keys, and follow your organization’s access rules. Avoid installing multiple tools merely because a connection fails; first identify whether the issue is DNS, network reachability, server service, or authentication.
Common Windows mistakes and fixes
- Running SSH inside the remote shell: note whether the prompt is local or remote before issuing commands.
- PPK passed to OpenSSH: convert it locally with PuTTYgen if authorized; do not rename the extension and expect conversion.
- Command not found: confirm OpenSSH Client is installed and reopen the terminal after installation.
- Path parsing: quote key paths with spaces and verify the file exists using
Test-Pathin PowerShell. - Firewall assumption: disabling Windows Firewall is not a safe general fix. Determine whether a managed outbound rule blocks the destination and ask the administrator for a narrow rule if needed.
Still working through it?
Describe the step you reached and the exact error. Leave out passwords and private keys. PutyTa responds to every inquiry, but not every technical problem can be resolved.