Practical SSH guide

SSH on Windows: PuTTY, OpenSSH, and Windows Terminal

Current Windows systems can use either a graphical client such as PuTTY or Microsoft’s OpenSSH client from a terminal. Both speak SSH; the right choice depends on workflow, key format, and administrative policy.

On this page

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.

Windows Terminalssh user@hostRemote Linux shellAfter host-key and login checks
Conceptual Windows workflow, not a screenshot of Windows Terminal or PuTTY.

Check OpenSSH availability in PowerShell:

Check the OpenSSH client
ssh -V
Get-Command ssh

If 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:

Optional elevated PowerShell installation
Get-WindowsCapability -Online | Where-Object Name -Like 'OpenSSH.Client*'
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0

The 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

Windows OpenSSH commands
ssh [email protected]
ssh -p 2222 [email protected]
ssh -i "$HOME\.ssh\work_key" [email protected]
ssh -v [email protected]
exit

Options 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

  1. Open a trusted terminal

    Start Windows Terminal or PowerShell. Confirm the supplied hostname, username, and port.

  2. Run the SSH command

    Use ssh username@hostname, adding -p PORT if required.

  3. Verify the server identity

    Compare the first-use host key fingerprint with a trusted administrator-provided value before accepting it.

  4. Authenticate and work

    Enter your password or key passphrase. The prompt changes to the remote shell after success. Run only intended commands.

  5. Exit cleanly

    Run exit. This closes the remote shell and returns to the local Windows prompt.

Choose an SSH client

Choose a client by workflow. Neither choice makes an unsafe server safe.
RequirementPuTTYWindows OpenSSH
InterfaceGraphical saved sessionsCommands in Windows Terminal or PowerShell
Private-key filePPK, selected in the sessionOpenSSH key format with -i or configuration
Useful whenYou want saved profiles or PageantYou 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-Path in 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.

Ask for Guidance